王昊
(東北農業大學成棟學院,黑龍江哈爾濱150030)
Struts2是一款擴展性很強的框架,它是由Strut開發團隊和WebWork團隊合作,共同開發的一個新的產品,新版本的Struts2更加容易使用,更加接近Struts2所追求的理念。從開發、部署到維護中效率的提高。
Struts2以WebWork優秀的設計思想為核心,吸收了Struts1的部分優點,建立了一個兼容WebWork和Struts1的MVC框架。在使用上與Struts1有著很大的不同,更接近WebWork的使用習慣,因為Struts2使用了WebWork的設計核心而不是Struts1的設計核心。Struts1與WebWork的優勢互補使得Struts2擁有著更加廣闊的前景。不僅Struts2自身更加強大,還對其他框架下開發的程序提供了很好的兼容性。
新建JAVA WEB項目,選擇Struts2資源中lib下的jar文件,添加到項目,并在項目的“JAVA構建路徑”中添加引用。
在項目中添加Struts2的支持后,就可以使用Struts2框架開發WEB應用程序了。
實現過程如下:
第一步,創建login.jsp頁面,主要內容如下:
用戶名:
密  碼:
第二步,創建LoginAction類。用于對用戶的請求做出處理,對于開發人員使用Struts2框架,主要是的編碼工作就是編寫處理請求的Action類,Action類通常都實現com.opensymphony.xwork.Action接口,并實現該接口中的execute()方法,Struts2中,所有的Action必須返回一個字符串類型的結果代碼。
import com.opensymphony.xwork2.Action;
public class LoginAction implements Action{
private String username;//產生其get/set系列方法private Stringpassword;//產生其get/set系列方法public String execute()throws Exception{
return"success";
}
}
在Struts2中,可以直接使用Action類中的username屬性來接收用戶的輸入,通過Struts2的數據綁定機制,傳遞username請求參數,其實等同于調用LoginAction的setUserName方法。
第三步,修改項目的配置文件web.xml,將全部請求定位到指定的Struts2過渡器中。
第四步,創建Struts2的配置文件,在src目錄下創建Struts.xml文件。
在Struts2配置文件中,package元素用于定義Struts2處理請求的邏輯單元,name屬性為必需的并且唯一,用來指定包的名稱;ex?tends屬性類似Java的extends關鍵字,用于指定要擴展的包。ac?tion元素用于配置Struts2框架的“工作單元”Action類,action元素將一個請求的URl(action的名字)對應到一個Action類,name屬性是必須的,用來表示action的名字,class屬性可選用于設定Action類的全限定名。Result元素用來設定Action類處理結束后,系統下一步將要做什么,name屬性表示result的邏輯名,用于與Action類返回的字符串進行匹配,result元素的值用來指定這個結果對應的實際資源的位置。
最后一步,編譯部署并啟動服務器,訪問login.jsp頁面。
至此,已經基于Struts2的應用程序的實現。
Struts2應用的執行流程為:瀏覽器發出login.action請求至服務器,Tomcat接收后,根據web.xml的配置,將請求發送給指定的Struts2過濾器,該過濾器根據struts.xml的配置內容,將請求發送給LoginAction類的對象,并調用默認的execute方法。然后根據execute方法的返回,匹配到login的結果,完成向login.jsp頁面的跳轉。頁面根據上下文中的內容,進行頁面的處理及顯示。