-
@Struts2---環(huán)境準備
1.運行struts2的環(huán)境要求
(1)Servlet API 2.4
(2)JSP API 2.0
(3)Java JDK 1.5 或者以上
2.使用步奏:
(1)將struts 添加到項目中:
????Apache官網(wǎng)下載struts庫文件,解壓;
????將lib目錄下struts.jar文件復制到項目WEB-INF/lib之下;
????其他文件則復制到/WEB-INF文件夾下,然后在該文件夾下創(chuàng)建struts-config.xml配置文件.
(2)給項目添加struts2支持
(3)創(chuàng)建Action進行測試
3.Apache Struts官方網(wǎng)站
????http://struts.apache.org/
????http://people.apache.org/builds/struts/查看全部 -
@Struts2---發(fā)展史
Struts2不是繼承struts1的血統(tǒng),而是在Webwork上的升級,同時吸收了Strust1和WebWork兩者的優(yōu)勢。
查看全部 -
@Struts2---MVC模式
JSP+JavaBean=Model-1:適用于小型網(wǎng)站的開發(fā)
JSP+Servlet+JavaBean=Model-2:最典型的MVC模式
MVC是模型(Model)、視圖(View)和控制器(Controller)的縮寫;MVC是一種軟件設計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。在Struts中,Controller就是action。查看全部 -
@Struts2---定義與用途
1.Struts是什么?
????Struts是流行和成熟的基于MVC設計模式的Web應用程序框架。
2.使用Struts的目的
????為了幫助我們減少在運用MVC設計模型來開發(fā)Web應用時間。查看全部 -
方面: 1.訪問Servlet API 2.Action搜索順序 3.動態(tài)方法調(diào)用 4.制定多個配置文件 5.默認action 6.Struts2后綴 7.接受參數(shù) 8.處理結果類型 1.訪問Servlet API HttpServletRequest HttpServletResponse(Struts2不存在) struts2提供了三種方式: 1.ActionContext 2.實現(xiàn)***Aware接口 3.ServletActionContext 2.Action搜索順序 http://localhost:8080/struts2/path1/path2/path3/student.action 1.判斷package是否存在,如:path1/path2/path3/ 2.(package存在)判斷action是否存在,如果不存在則去默認namespace的package里面尋找action 3.如果沒有,則報錯 2.(package不存在)檢查上一級路徑的package是否存在(知道默認namespace),重復第一步 3.如果沒有,則報錯 3.動態(tài)方法調(diào)用 為了解決一個Action對應多個請求的處理,以免Action太多 1.制定method屬性(少用)method="" 2.感嘆號方式(不推薦)xxx!add.action 3.通配符方式(推薦使用)*_*和{1}{2} 4.指定多個配置文件 1.<include file="模塊.xml"></include> 5.默認action 當用戶輸入的地址找不到對應的action,那么默認action就起作用了 <package> <default-action-ref name="action名稱" /> <action name="" class=""> </action> </package>
查看全部 -
全局結果: 將<result/>作為<global-result/>元素的子元素配置。 局部結果: 將<result/>作為<action/>元素的子元素配置。 <result>/success.jsp</result>與<result>success.jsp</result>的區(qū)別 帶斜杠是:絕對路徑,開始是整個項目的上下文路徑 去掉斜杠:相當于執(zhí)行該action namespace指定的路徑 result具有子標簽param標簽,result具有兩個屬性,一個是location,一個是prase屬性,location定義了該視圖對應的實際視圖資源,parse即是指定是否可以在result中使用ognl表達式,默認值為true <result> <param name="location"> </param> <param name="prase"></param> </result> 在result中使用ognl表達式: ${#request.path}這中形式,即action中request對象的一個屬性值 ${username}這種形式,即action中的一個成員變量的值,action中該成員變量應該有getter和setter方法
查看全部 -
結果類型input的效果 * 1.當參數(shù)類型轉(zhuǎn)換錯誤時,如age輸入框中的類型是字母等情況,方法自動返回input * 2.當action中存在addFiledError時: * ? ?1)addFileError放在一般執(zhí)行方法,addFieldError("", "");語句后面有返回input的語句 * ? ?2)addFileError放在validate()中 *3.FileError的表現(xiàn)形式: * ? ?在jsp頁面中使用<s:fielderror/>標簽,該標簽name屬性為addFieldError方法中的參數(shù)fieldName,在jsp頁面中使用struts標簽, * ? ?需要導入標簽庫 ?語句:<%@ taglib prefix="s" uri="/struts-tags" ?%>
查看全部 -
Action中5中內(nèi)置屬性 (1) SUCCESS :Action正確的執(zhí)行完成,返回相應的視圖,success是name屬性的默認值。 (2) NONE :表示Action正確的執(zhí)行完成,但并不返回任何事視圖。 (3) ERROR : 表示Action執(zhí)行失效,返回錯誤處理視圖。 (4) LOGIN : Action因為用戶沒有登錄的原因沒有正確執(zhí)行,將返回該登錄視圖,要求用戶進行登錄驗證 (5) INPUT : Action的執(zhí)行,需要從前端界面獲取參數(shù),INPUT就是代表這個參數(shù)輸入界面,一般在應用中,會對這些 參數(shù)進行驗證,如果驗證沒有通過,將自動返回該視圖。
查看全部 -
接收參數(shù) 1,使用Action的屬性接受參數(shù),在Action中定義需要接受的屬性,并寫它的set/get方法。 2,使用DomainModel接受參數(shù),創(chuàng)建實體類定義需要接受的屬性,并set/get方法,在Action中創(chuàng)建實體類名屬性。并在界面進行指定。 3,使用ModelDriver接受參數(shù),在Action中實現(xiàn)ModelDriver<實體類名>接口,并實現(xiàn)方法返回當前需要轉(zhuǎn)換的對象,刪除set/get方法,并對 對象 進行實例化,并取消指定。 4,request 5,獲取List集合中的參數(shù)。獲取多個參數(shù)。 第一種接收參數(shù)的方法:直接在action類中創(chuàng)建相應的屬性和getter和setter,和前端的name名字相同。eg:前端的username,在action類中就要建立一個private String username; Struts會自動映射為這個屬性賦值 第二種接受參數(shù)的方法:使用DomainModel,將username 和password兩個屬性封裝為一個類User(必須是標準的JavaBean),在action中聲明這個屬性:private User user; 同時為user設置getter和setter;在前端中的name需要設置為user.name和user.password,才能映射成功 第三種接收參數(shù)的方法:使用ModelDriven<T>接口,這個action必須實現(xiàn)這個接口的public T getModel()方法。此時聲明的屬性必須實例化,eg: private User user = new User(); 同時不需要getter和setter。前端的name也只需要寫username和password就可以,不需要再加域了。這種方法時最推薦的方法,因為可以減少前后端的耦合
查看全部 -
struts.xml中包含的內(nèi)容:
查看全部 -
Struts2的工作原理流程圖
查看全部 -
第2個網(wǎng)址:http://people.apache.org/builds/struts/失效了。
查看全部 -
struts2后綴: 三種方式: 1.struts.properties中:struts.action.extension=action,do,struts2 2.xml中增加常量constant: <constant name="struts.action.extension" value="action,do,struts2"></constant> 3.在過濾器中配置intt-param參數(shù): <init-param> ?<param-name>struts.action.extension</param-name> ?<param-value>do,action,strtus2</param-value> </init-param>
查看全部 -
【找不到默認action的原因和解決方法】 <default-action-ref name="index"></default-action-ref><br> ? ? <br> ? ? <action name="index"><br> ? ? <result>/error.jsp</result><br> ? ? </action> ? <br> ? ? <br> ? ? <action name="log_*" method="{1}" ?class="com.wayne.action.LoginAction"><br> ? ? <result name="login">/login.jsp</result><br> ? ? <result name="logout">/logout.jsp</result><br> ? ? </action><br> <br> 通配符會覆蓋掉默認action,所以不能有【*_*】這樣子的action,要改成【log_*_*】這類型的命名,否則,【*_*】里面的第一個*就包括了所有的字符,直接進入了這個action進行處理,無法進入默認的action了。
查看全部 -
1、如果有很多個Action的配置文件,則需要在struts.xml中使用<include file="fileName.xml"/>來包含其他的配置文件 2、struts文件中添加<constant name="struts.i18n.encoding" value="UTF-8"></constant>以防亂碼問題的出現(xiàn) 配置文件和struts.xml的格式如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> ... </struts>
查看全部
舉報