一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

BlogJava - piliskys - struts的輕量架構(gòu)(新手有用)

 Godhead 2006-04-23
用過(guò)struts都清楚,struts的開(kāi)發(fā)一般要寫兩個(gè)類,F(xiàn)ormBean和Action類,通常情況下Action是這樣的:
public   class XXXAction  extends Action {
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request, HttpServletResponse response) 
throws Exception {
        XXXXForm theform 
=(XXXXForm) form;//form的強(qiáng)制轉(zhuǎn)型
        
//這里就是你要處理的業(yè)務(wù)邏輯了 
        return mapping.findForward("XXXX");
    }
這是一個(gè)Action最少的代碼了,它沒(méi)有處理任何邏輯,只是一個(gè)跳轉(zhuǎn),F(xiàn)ormBean的話,只要繼承ActionForm,代碼到?jīng)]有規(guī)定,到時(shí),我們可能會(huì)想,每個(gè)Action里面都必須寫上面那些代碼,煩啊,還有在每個(gè)FormBean里我們一般都會(huì)定義一些常用的屬性,如event,根據(jù)event的值,我們來(lái)決定一些邏輯的處理及頁(yè)面的跳轉(zhuǎn),每次要寫,也煩啊。
   好,煩的話,那我們要開(kāi)始做點(diǎn)事情了,首先,寫一個(gè)formBean代碼如下:
public class XXXForm extends  ActionForm{
    
private String event;//事件名
    public String getEvent() {
        
return event;
    }

    
public void setEvent(String event) {
        
this.event = event;
    }

}
我想這誰(shuí)都應(yīng)該清楚,然后我們?cè)賹慺rombean時(shí),就不要extends  ActionForm,而是extends  XXXForm了,這樣,我們省了些代碼,我們?cè)賮?lái)看Action,也這樣試試:
public abstract class XXXAction  extends Action {
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
                             HttpServletRequest request, HttpServletResponse response) 
throws Exception {
        XXXForm theform 
=(XXXForm) form;
        
return mapping.findForward(doAction(theform));
    }

     
/**
      * 處理一些業(yè)務(wù)
      * 
@param form
      * 
@return    返回mapping指向的字符串
      
*/

   
public abstract  String doAction(BaseForm form);//抽象
}
這樣的話,我們?cè)賹慉ction類時(shí),就不extends Action而是extends XXXAction,代碼就像:
public class ***Action extends XXXAction {
    
public String doAction(XXXForm form) {
        
***Form theform = (***Form) form;//強(qiáng)制轉(zhuǎn)成你真正的formbean
     
//這里就是你要處理的業(yè)務(wù)邏輯了   
     return "success";
    }

}

就是以上一些代碼,簡(jiǎn)單多了吧,return一個(gè)字符串就行了,感覺(jué)還有點(diǎn)像webwork了,到此完了嗎,有沒(méi)

有什么還沒(méi)有做呢,對(duì)了,這樣的話,我們定義的Action都成無(wú)會(huì)話的bean了,所以request是要得到的

,很多情況下的url是***action.do?id=cctv,而且一般是系統(tǒng)都是把用戶的信息放入session中的,所以

request是強(qiáng)烈要求要還給我們的,好,那我們來(lái)重構(gòu)下formbean和action吧,以下我們用BaseForm,及

BaseAction來(lái)定義,兩個(gè)類都放在同一個(gè)包中

public class BaseForm extends  ActionForm{
    
private String event;
    
private HttpServletRequest request;
    
/**
      * 注:這個(gè)是得到用戶信息,這個(gè)只是一個(gè)例子,也可不實(shí)現(xiàn),由request得到session,再得到

user,
      * 但reguser字符串對(duì)一般開(kāi)發(fā)人員可能是不可見(jiàn)的
      
*/

    
public User getUser() {
        
return   (User) getRequest().getSession().getAttribute("reguser");
    }

    
public HttpServletRequest getRequest() {
        
return request;
    }

    
/**
      * 注:這里用的protected,這樣可以就同一包的類可調(diào)用,其它類是不可見(jiàn)的
      
*/

    
protected void setRequest(HttpServletRequest request) {
        
this.request = request;
    }

    
public String getEvent() {
        
return event;
    }

    
public void setEvent(String event) {
        
this.event = event;
    }

}
BaseAction代碼:
public abstract class BaseAction  extends Action {
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request, HttpServletResponse response) 

throws Exception {
        BaseForm theform 
=(BaseForm) form;
        theform.setRequest(request);
//加了這句
        return mapping.findForward(doAction(theform));
    }

     
/**
      * 處理一些業(yè)務(wù)
      * 
@param form
      * 
@return    返回mapping指向的字符串
      
*/

   
public abstract  String doAction(BaseForm form);
}

到此算為結(jié)束,可能有為會(huì)問(wèn),那還有response呢,response的話,一般出現(xiàn)在內(nèi)部跳轉(zhuǎn)等情況,感覺(jué)用

的比較少,所以在此就不把它給大家了,如覺(jué)得一定要得到的話,那就跟request一樣進(jìn)行設(shè)置吧,不過(guò)

萬(wàn)事都應(yīng)該有個(gè)度,自己衡量。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    av在线免费观看在线免费观看| 欧美日韩人妻中文一区二区| 国产精品九九九一区二区| 日韩在线视频精品视频| 日本少妇三级三级三级| 一本久道久久综合中文字幕| 国内精品伊人久久久av高清 | 欧美区一区二区在线观看| 欧美一区二区三区高潮菊竹| 亚洲欧美黑人一区二区| 中文字字幕在线中文乱码二区 | 日本加勒比中文在线观看| 国产一区一一一区麻豆| 大香蕉伊人一区二区三区| 国产一区二区三区色噜噜| 东京热加勒比一区二区三区| 亚洲一区二区三区在线免费| 国产成人午夜在线视频| 日韩精品第一区二区三区| 日本不卡在线一区二区三区| 日韩欧美高清国内精品| 国产精品一区二区三区欧美| 国产精品免费视频视频| 久久99热成人网不卡| 开心激情网 激情五月天| 国产av一区二区三区久久不卡| 日本理论片午夜在线观看| 久久国产精品热爱视频| 91精品欧美综合在ⅹ| 精品老司机视频在线观看| 国产传媒精品视频一区| 中文字幕禁断介一区二区| 美女被草的视频在线观看| 国产色一区二区三区精品视频| 蜜桃传媒视频麻豆第一区| 又黄又硬又爽又色的视频| 欧美日韩国产精品黄片| 欧美日韩综合在线第一页| 欧美成人高清在线播放| 国产传媒一区二区三区| 日本妇女高清一区二区三区|