日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用struts2流程的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)使用struts2流程的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,全椒網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:全椒等地區(qū)。全椒做網(wǎng)站價格咨詢:18982081108

1.客戶端初始化一個指向servlet容器(Tomcat)的請求;

2.這個請求經(jīng)過一系列的過濾器,接著FilterDispatcher被調(diào)用;

3.FilterDispatcher詢問ActionMapper來決定這個請求是否要調(diào)用某個action;

4.如果ActionMapper決定調(diào)用某個Action,FilterDispatcher把請求的處理交給ActionProxy,ActionPro根據(jù)ConfigurationManager詢問框架的配置文件,找到需要調(diào)用的Action類,一般都是讀取struts.xml;

5.ActionProxy創(chuàng)建一個ActionInvocation的實例,ActionInvocation實例使用命名模式來調(diào)用,在調(diào)用Action的過程前后,涉及到相關(guān)攔截器的調(diào)用;

6.一旦Action執(zhí)行完畢,ActionInvocation根據(jù)struts.xml中的配置找到對應(yīng)的返回結(jié)果

比如代碼:

struts2獲得了.action請求后,將根據(jù)部分決定調(diào)用哪個業(yè)務(wù)邏輯組件;

struts2應(yīng)用中的Action都被定義在struts.xml中;

struts2用于處理用戶請求的Action實例并不是用戶實現(xiàn)的業(yè)務(wù)控制器,而是Action代理,因為用戶實現(xiàn)的業(yè)務(wù)控制器并沒有與ServletAPI耦合,顯然無法處理用戶的請求。


 
  SUCCESS
 
 
  
    USERNAME:
    PASSWORD:
         

比如上面表單的hello.action,這個action屬性不是一個普通的servlet,也不是一個動態(tài)JSP頁面,當(dāng)表單提交給hello.action時,Struts2的FilterDispatcher將會起作用,將用戶請求轉(zhuǎn)發(fā)到對應(yīng)的Action.

注意的是:Struts2 Action默認(rèn)攔截所有后綴為.action的請求,如果我們需要將表單提交給Action處理,則應(yīng)將表單action屬性設(shè)置為.action的格式。

控制器類

public class HelloAction {
	private String name;
	private String pass;
	public void setName(String name){
		this.name=name;
	}
	public void setPass(String pass){
		this.pass=pass;
	}
	public String execute(){
		if("yang".equals(name) && "1234".equals(pass)){
			return "success";
		} else{
			return "error";
		}
	}
}

前面執(zhí)行完成后僅僅是執(zhí)行了頁面的轉(zhuǎn)發(fā),沒有跟蹤用戶的狀態(tài),當(dāng)用戶登錄完成后,我們需要將用戶的用戶名添加為HTTPSession的狀態(tài)信息。

為了訪問Httpsession實例,struts2提供了一個ActionContext類,該類提供了一個getSession()得方法,但是這個方法的返回值不是HttpSession()而是Map(),但是Struts2的攔截器會負(fù)責(zé)該Session()和HttpSession()之間的切換。

為了檢查我們設(shè)置的session屬性是否成功,可以給成功后的界面這么設(shè)置


 
  " rel="external nofollow" >
  SUCCESS
 
 
  歡迎,${sessionScope.user},您已經(jīng)登錄。
 

利用JSP2.0表達(dá)式語法輸出HTTP Session中的user屬性。

Action 工具類集成ActionSupport

ActionSupport類是一個工具類,而且已經(jīng)實現(xiàn)了Action接口,除此之外,還實現(xiàn)了Validateablez接口,提供了數(shù)據(jù)校驗功能。

為了增加輸入數(shù)據(jù)的校驗功能,在Action中增加重寫validate方法。

public void validate() {
	if(getName()==null || getName().trim().equals("")){
		addFieldError("name",getText("name.required"));
	}
	if(getPass()==null || getPass().trim().equals("")){
		addFieldError("pass", getText("pass.required"));
	}
}

上面添加的重寫的validate方法會在系統(tǒng)的execute()方法之前執(zhí)行,如果執(zhí)行該方法后Action類的fieldError中已經(jīng)包含了數(shù)據(jù)校驗錯誤,請求將被轉(zhuǎn)發(fā)到input邏輯視圖處,所以還要在struts.xml中添加input邏輯視圖名,讓其跳轉(zhuǎn)到登錄頁面。

這個validate方法的缺點就是需要大量重寫validate方法,所以可以用struts2的校驗框架進行校驗。





  
    
      
    
  
  
  
    
      
    
  

關(guān)于“使用struts2流程的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


網(wǎng)站標(biāo)題:使用struts2流程的示例分析
鏈接地址:http://www.dlmjj.cn/article/jhjhsc.html