struts2調(diào)試技巧:(包括4點) 1、 設(shè)置開發(fā)模式為調(diào)試模式。修改struts.properties devMode=true 2、增加調(diào)試包??截?span lang="EN-US">struts2-config-browser-plugin-2.0.14.jar到lib目錄下。 在瀏覽器中訪問:http://localhost:port/projectName/config-browser/index.action 3、調(diào)試標簽的使用。只需要在有表單的jsp頁面添加<s:debug></s:debug> 4、在URL上增加調(diào)試命令。 http://localhost:port/projectName/test.action?debug=xml http://localhost:port/projectName/test.action?debug=console
struts2如何訪問Application、Session、Request等http對象? struts2對以上3個對象進行了封裝。查看文檔可知: 獲取session兩種方法:1、ServletActionContext.getRequest().getSession(); 2、Map session=(Map)ActionContext.getContext().getSession(); session.put(“myId”,myprop);//可以改變session中原先的值。 獲取Application:Mapapplication=ActionContext.getContext().getApplication(); 另外,org.apache.struts2.ServletActionContext作為輔助類(HelperClass),可以幫助您快捷地獲得下面這幾個對象。 HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); HttpSession session = request.getSession(); 深入struts.xml配置文件、struts.properties、struts-default.xml、default.properties文件: struts.xml:struts2框架的核心配置文件。 (說明:在struts.xml中的如下配置: <packagenamespace=”namespace”> <actionname=”ActionName”class=”…”method=”methodName”></action> </package>
針對上述配置,在地址欄中可以有兩種訪問方式 http://localhost:port/projectName/namespace/ActionName!methodName.action該形式在沒有method屬性的情況下,會調(diào)用!后面的方法名 http://localhost:port/projectName/namespace/ActionName.action該形式會自動調(diào)用method屬性指定的方法 如果<action></action>標簽中沒有指定method屬性,默認會調(diào)用action類中的exexute()方法。)
struts.properties:主要用來設(shè)置變量的申明 default.properties:struts2核心包中的屬性文件,當沒有申明struts.properties文件中的變量時,struts2運行時會采用該文件中默認的變量。struts2的常量讀取順序:strtus-default.xml(保存在struts-core-2.x.x.jar文件中)、struts-plugin.xml(保存在struts-core-2.x.x.jar文件中)、struts.xml(web應(yīng)用默認的xml配置文件)、struts.properties(web應(yīng)用默認的struts2的配置文件)、web.xml(web應(yīng)用的配置文件)。如果在多個文件中配置了相同的struts常量,那么,后面的將覆蓋前面的常量。 struts-default.xml:struts2核心包中的xml文件,提供相關(guān)的內(nèi)置組件,攔截器,視圖等組件。struts.xml中所繼承的package都是從該文件中而來的。
1、數(shù)據(jù)重復(fù)提交的問題:通過在action的類中的方法返回一個字符串,該字符串被struts.xml文件中的<resulttype=”redirect”></result>標簽所定義,是請求重定向.而不是請求轉(zhuǎn)發(fā)默認的type=”dispatcher”。 日期標簽控件的引用:<s:datetimepicker></s:datetimepicker>,<s:date></s:date>, <s:head/>
2、 驗證框架:服務(wù)器端xml驗證、客戶端驗證 基于xml的服務(wù)器端驗證:必須繼承ActionSupport類、必須指定inuput視圖。純寫一個xml文件對表單有是每個字段進行配置而驗證。 基于xml的客戶端驗證:首先要保證基于xml的服務(wù)器端驗證是正常的。需要在表單中設(shè)置屬性validate=”true”,如果在表單中寫上action,namespace的話,必須分開分別賦值。必須在有表單的jsp頁面頭信息寫上<s:head/>標簽。 基于服務(wù)器的validate()方法進行驗證: 基于服務(wù)器的validateMethodName()方法進行驗證:
總歸以上幾種方式的驗證順序是:xml,validateMethodName,validate |
|