Struts2_day01--Struts2入門、xml配置及action訪問方式
阿新 • • 發佈:2018-12-17
一、Struts2概述
應用於 JavaEE三層結構中的 web層框架
struts2作用:解決BaseServlet需要複雜程式碼的問題。(BaseServlet需要寫到底層反射,較複雜)
版本:struts-2.3.24-all.zip
瞭解:web層常用框架:struts2、springMVC
作用流程:
二、Struts2入門
1)導包 2)建立action(三種方式) 1)建立普通類,不繼承任何類,不實現任何介面。 2)建立類,實現介面 Action public class HelloAction implements Action{...} 需要導包:import com.opensymphony.xwork2.Action; 3)建立類,繼承類 ActionSupport(建議使用!!!) public class HelloAction extends ActionSupport{...} 3)配置struts2核心配置檔案(action類訪問路徑) 1)建立struts2核心配置檔案 - 位置:必須在src下面, - 名稱:必須是struts.xml 2)引入dtd約束 在struts.xml中 3)struts配置 <package name=""> <action name=""> <result></result> </action> </package> 4)配置struts2過濾器 1)進入到web.xml中,在<display-name>標籤的下一行新增: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2)按ctrl點選<filter-class>內容,匯入原始碼(原始碼路徑:struts-2.3.24 / src)
Struts2執行過程:
三、structs.xml配置講解
1)package標籤:類似於程式碼包。 name屬性: 作用:起指明package的作用 屬性值要求:一個配置檔案中可以有多個package標籤,其各自name屬性值不能相同 extends屬性: 作用:使package裡面配置的類具有action功能 屬性值要求:屬性值固定為struts-default。 namespace屬性: 屬性值:"/" 作用:namespace屬性值和action標籤裡面的name屬性值構成訪問路徑 2)action標籤:配置action訪問路徑 name屬性: 1)namespace屬性值和action標籤裡面的name屬性值構成訪問路徑 2)一個package標籤裡面寫多個action標籤,每個action的name屬性值不能相同。 class屬性:值為:action全路徑 method屬性: 1)指定執行action裡面的方法,使用method進行配置。 2)不配置則預設執行action中的execute方法。 3)result標籤:根據action的方法返回值,配置到不同的路徑裡面 name屬性:屬性值和被執行的方法返回值相同。 type屬性: 1)配置如何到路徑中(轉發或者重定向)。預設為轉發。 2)標籤內容為跳轉頁面 程式碼示例: <?xml version="1.0" encoding="UTF-8"?> <!-- dtd約束 --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 分模組開發:引入配置檔案(引入後則下面不需要配置) <include file="配置檔案全路徑"></include> --> <!-- 修改常量值 --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!-- package標籤:類似於程式碼包。 --> <package name="aaa" extends="struts-default" namespace="/"> <!-- action標籤:配置action訪問路徑 --> <action name="hello" class="action.HelloAction"> <!-- result標籤:根據action的方法返回值,配置到不同的路徑裡面--> <result name="ok">/index.jsp</result> </action> </package> </struts>
四、分模組開發、過濾器原始碼、struts常量:
1)分模組開發方式: 作用: 解決程式碼來回修改的問題 使用場景: 適用於多人合作開發 做法:單獨寫配置檔案,把配置檔案引入到核心配置檔案中 <!-- 分模組開發:引入配置檔案 <include file="配置檔案全路徑"></include> --> 2)過濾器原始碼: 1)實現Filter介面 2)過濾器在伺服器啟動時候建立,建立過濾器時候執行init方法 init方法中主要載入配置檔案 - 包含自己建立的配置檔案和struts2自帶配置檔案 1)struts.xml 2)web.xml 3)struts2常量: 作用:struts2常量裡面封裝一部分功能 struts2的預設常量存放位置: struts2-core-2.3.23.jar --> org.apache.struts2 --> default.properties。 修改常量值的三種方式: 1)struts.xml中進行配置 (推薦使用) 操作:在<struts>標籤中使用<constant>標籤進行配置. name:常量名. value:常量值 示例:<constant name="struts.i18n.encoding" value="UTF-8"></constant> 2)在src下面建立 struts.properties,進行修改 (瞭解) 3)在web.xml進行配置 (瞭解)
五、訪問action的方式(三種)
第一種:使用action標籤的method屬性.在屬性裡面寫執行的action的方法
第二種:使用萬用字元方式實現
第三種:動態訪問實現(不用)