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