-
1.3:Struts2的發(fā)展歷史
????1
查看全部 -
多看兩次
查看全部 -
4-8
查看全部 -
查看全部
-
方法一
<action name="helloworld" class="com.imooc.action.HelloWorldAction">
<result>/result.jsp</result>
</action>
方法二
<constant name="struts.enable.DynamicMethodInvocation" value="true">
<action name="helloworld" class="com.imooc.action.HelloWorldAction">
<result>/result.jsp</result>
<result name="add">/add.jsp</result>
<result name="update">/update.jsp</result>
</action>
http://localhost:8080/hello/helloworld!update.action
方法三
<constant name="struts.enable.DynamicMethodInvocation" value="false">
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld_*" method="{1}" class="com.imooc.action.HelloWorldAction">
<result>/result.jsp</result>
<result name="add">/{1}.jsp</result>
<result name="update">/{1}.jsp</result>
</action>
http://localhost:8080/hello/helloworld_update.action
查看全部 -
在result里面最重要的屬性是type類型,type的默認(rèn)值為dispatcher(轉(zhuǎn)發(fā)),這個類型支持JSP視圖技術(shù)。?
Struts2支持多種視圖技術(shù),例如JSP、Valocity(模板引擎)、FreeMaker(模板引擎)等。?
常用三個:chain,redirect,plaintext。
1)、chain:將action和另外一個action鏈接起來,必須是一個action不能是jsp頁面。 2)、redirect:重定向(會丟失請求參數(shù))。
3)、plaintext:返回網(wǎng)頁源代碼。
4)、stream:返回inputstream用于文件下載。
5)、默認(rèn)"dispatcher" jsp傳值 請求轉(zhuǎn)發(fā)
查看全部 -
INPUT處理結(jié)果類型。有2種方式能觸發(fā)result標(biāo)簽的name為"input"的action。
* 1.當(dāng)參數(shù)類型轉(zhuǎn)換錯誤時,如age輸入框中的類型是字母等情況,方法自動返回input *?
2.當(dāng)action中存在addFiledError時:?
?1)addFileError放在一般執(zhí)行方法,addFieldError("", "");語句后面有返回input的語句 *?
2)addFileError放在validate()中?
*3.FileError的表現(xiàn)形式: * 在jsp頁面中使用<s:fielderror/>標(biāo)簽,該標(biāo)簽name屬性為addFieldError方法中的參數(shù)fieldName,在jsp頁面中使用struts標(biāo)簽 *?
需要導(dǎo)入標(biāo)簽庫 語句:<%@ taglib prefix="s" uri="/struts-tags" %>
查看全部 -
接收參數(shù)?
Action接收參數(shù) Action中直接設(shè)置屬性 (對應(yīng)Action文件中的get和set得到表單提交的數(shù)據(jù))
.使用DomainModel接收參數(shù),單獨(dú)設(shè)置模型類,表單中要指出哪個對象,Action中要有對對象的getter,setter,方法,但不用實(shí)例化對象?
使用ModelDriven接收參數(shù):設(shè)置模型類,Action類實(shí)現(xiàn)ModelDriven <T>接口,重寫getModle()方法,Action中不需要getter,setter,表單中不需要指出哪個對象,但是需要在對應(yīng)的Action類中實(shí)例化對象
(使用泛型的獲取參數(shù))
查看全部 -
三種方式? ?可以定制? ? ? url的后綴:
在struts.xml的包外面配置常量<constant name="struts.action.extension" value="指定擴(kuò)展名"></constant>
在struts.propertios文件中配置struts.action.extension=指定的擴(kuò)展名1,指定擴(kuò)展名2,。。。(以??逗號隔開? ?可以配置多個后綴名? ?)
在web.xml中配置strutsPreparedAndExecuteFilter時初始參數(shù)配置<init-param><param-name>struts.action.extension</param-name><param-value>指定擴(kuò)展名</param-value></init-param>
查看全部 -
推薦使用通配符方式來實(shí)現(xiàn)動態(tài)方法調(diào)用。
1、一個通配符
<packgage name="default" namespace="/" extend="struts-defaullt">
????<actiion name = "helloworld_*" method="{1}" class="..">
????????<result>/defult.jsp</result>
????????<result name="add">/{1}.jsp</result>
????????<result name="update">/{1}.jsp</result>
????</action>
</packgage>
2、兩個通配符
<package name="default" extends="struts-default" namespace="/" strict-method-invocation="false">
? ? ? ? <action name="*_*" class="com.action.{1}Action" method="{2}">
? ? ? ? ? ? <result >/result.jsp</result>
? ? ? ? ? ? <result name="{2}">/{2}.jsp</result>
? ? ? ? ? ? <result name="{2}">/{2}.jsp</result>
? ? ? ? </action>
? ?
? ? </package>??
Struts2 2.5中默認(rèn)是不開啟通配符,需要將strict-method-invocation設(shè)置為false?
即:
<package?name="default"?namespace="/"?extends="struts-default"?strict-method-invocation="false">??
</package>?
驚嘆號方式調(diào)用方法時:
<packgage name="default" namespace="/" extend="struts-defaullt">
????<actiion name = "helloworld"? class="..">
????????<result>/defult.jsp</result>
????????<result name="add">/add.jsp</result>
????????<result name="update">/update.jsp</result>
????</action>
</packgage>
查看全部 -
Struts.xml 的主要內(nèi)容
查看全部 -
包下的所有action都可以共用全局結(jié)果
查看全部 -
結(jié)果分為2種:局部結(jié)果,全局結(jié)果
查看全部 -
stream用于文件的下載
查看全部
舉報