-
動態方法調用: 動態方法調用是為了解決一個Action對應多個請求的處理,以免Action太多。 三種方式:指定method屬性、感嘆號方式、通配符方式 1:<action name="add" method="add" class="com.Action.hellowAction"> 2:<constant name="struts.enable.DynamicMethodInvocation" value="false"> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </constant> <action name="hellowword" class="com.Action.hellowAction"> ? ? ?<result >/result.jsp</result> ? ? ?<result name="add">/add.jsp</result> ? ? ?<result name="update">/update.jsp</result> ? ? ?</action> http://localhost:8080/struts_hellowworld/aaa/hellowworld!.action 3: <action name="*_*" method="{2}" class="com.Action.{1}Action"> ? ? ?<result >/{2}.jsp</result> ? ? ?<result name="add">/{2}.jsp</result> ? ? ?<result name="update">/{2}.jsp</result> ? ? ?</action> http://localhost:8080/struts_hellowworld/aaa/hellow_add.action
查看全部 -
例子: http://localhost:8080/product_one/hellowworld.jsp可以進入result.jsp頁面 http://localhost:8080/product_one/aaa/ddd/ccc/hellowworld.jsp也可以進入result.jsp頁面 Action搜索順序: http://localhost:8080/struts2/path1/path2/path3/student.action 第一步:判斷package是否存在,如:path1/path2/path3/ 如果package存在 第二步:則判斷該package中action是否存在,如果不存在則去默認namespace的package里面尋找action 第三步:如果沒有,則報錯 如果package不存在: 第二步:檢查上一級路徑的package是否存在(直到默認namespace),重復第一步 第三步:如果沒有則報錯 如果請求為/login.action,系統會根據根命名空間("/")中查找名為login的Action,如果在根命名空間中找到了名為login的Action,則該Action處理用戶的請求;否則系統將轉為在默認命名空間中尋找名為login的Action,如果默認的命名空間中有名為login的Action,則由該Action處理用戶的請求。如果兩個命名空間中都找不到名為login的Action,那么系統將出現錯誤。 ? ? ? 注意:命名空間只有一個級別。如果請求的URL是/bookservice/search/get.action系統將先在/bookservice/search的命名空間下查找名為get的Action,如果在該系統命名空間內找到名為get的Action,則由該Action處理該用戶的請求;如果在該命名空間中沒有找到名為get的Action,系統將直接進入默認的命名空間中查找名為get的Action,而不會在bookservice的命名空間下查找名為get的Action。 可以多個包使用同一個命名空間,但是相同的命名空間相當于同一個模塊,也就是同一個包。 一個包中可以有name值相同的action,但是后面的action會把前面同名的action覆蓋掉
查看全部 -
Struts2提供了三種方式去訪問Servlet API 1、使用ActionContext訪問Servlet API(推薦使用) ActionContext actionContext=ActionContext.getContext(); Map<String, Object> sessionMap=actionContext.getSession(); sessionMap.put("user", user); 2、使用IOC的方式訪問Servlet ApI 實現****Aware接口,如實現SessionAware接口,重寫setSession方法 public void setSession(Map<String, Object> sessionMap) { this.sessionMap=arg0; } sessionMap.put("user",user); 3、耦合方式(ServletActionContext)訪問Servlet API(該方法不推薦使用) ServletActionContext.getPageContext(); ServletActionContext.getRequest(); ServletActionContext.getResponse(); ServletActionContext.getServletContext();
查看全部 -
深入講解struts的八個主要步驟: 1.訪問Servlet API 2.Action搜索順序 3.動態方法調用 4.指定多個配置文件 5.默認Action 6.Struts2后綴 7.接受參數 8.處理結果類型
查看全部 -
web.xml 任何MVC框架都需要與Web應用整合,這就不得不借用于web.xml文件,只有配置web.xml文件中Servlet才會被應用加載 Model2:JSP+JavaBean+Servlet 通常,所有MVC框架都需要Web應用加載一個核心控制器,對于Struts2框架而言,需要加載StrutsPerpareAndExecuteFilter,只負責Web應用加載StrutsPerpareAndExecuteFilter,StrutsPerpareAndExecuteFilter將會加載Struts2框架。 遇到.acton文件就會攔截并進行處理 struts.xml struts2的核心配置文件,在開發過程中利用率最高。 該文件主要負責管理Action的映射,以及該Action包含的Result定義等。 struts.xml中包含的內容: 1、全局屬性 2、用戶請求和相應Action之間的對應關系 3、Action可能會用到的參數和返回結果 4、各種攔截器的配置 struts.properties struts2框架的全局屬性文件,自動加載 和strusts.xml在一個路徑 該文件包含很多key-value鍵值對。 這個文件可以不要,可以在structs.xml中進行配置,使用constant元素可以替換 .dtd就是約束struts.xml中可以有哪些標簽不能有哪些標簽 可以通過 <include file=“”>包含其他文件 可以把每個功能模塊獨立到一個xml配置文件中,然后用Include節點引用 <package> package提供了將多個Action組織成為一個模塊的方式 package的名字必須是唯一的,可以在這個包上加一些拓展的包 <package name="包名" extends="繼承的父類的名稱" abstract設置package的屬性為抽象,抽象的package不能定義action的值, ture或false namespace 包的命名空間> <interceptors>為攔截器 可以為攔截器定義name(名稱)和class(類路徑) <interceptor-stack>攔截器棧 <default-interceptor-ref name="">定義默認的攔截器,每個Action都會自動引用如果
查看全部 -
struts2處理結果類型
查看全部 -
action的搜索順序
查看全部 -
Struts2的環境要求
查看全部 -
Struts2是webwork的升級
查看全部 -
Struts1是2001年發布的全世界第一個MVC框架
查看全部 -
MVC模式環,最終是閉環的
查看全部 -
MVC的model2模式
查看全部 -
MVC的model1模式
查看全部 -
Struts是什么
查看全部 -
需要的幾個包
查看全部
舉報