Struts2注解
1 Struts2注解的作用
使用注解可以用來替換struts.xml配置文件!!!
2 導包
必須導入struts2-convention-plugin-2.3.15.jar包,它在struts2安裝包下lib目錄中。
3 通過配置文件學習對應的注解
@Action來代替<action>元素!
l String value():指定訪問路徑;
l Result[] results():指定局部結果。
@Result來代替<result>元素!
l String name():指定結果名稱;
l String location():指定結果路徑。
@Namespace代替<package>的namespace屬性:
l String value():指定名稱空間。
@ParentPackage代替<package>的extends屬性:
l String value():指定父包名稱
@Namespace("/order")
@ParentPackage("struts-default")
publicclassOrderAction extendsActionSupport? {
? @Action(value="add", results={
? ? ? ? ? @Result(name="success", location="/index.jsp"),
? ? ? ? ? @Result(name="input", location="/add.jsp")})
? publicString add() {
? ? ? System.out.println("add()");
? ? ? returnSUCCESS;
? }
? @Action(value="mod", results={@Result(name="success", location="/index.jsp")})
? publicString mod() {
? ? ? System.out.println("mod()");
? ? ? returnSUCCESS;
? }
? @Action(value="del", results={@Result(name="success", location="/index.jsp")})
? publicString del() {
? ? ? System.out.println("del()");
? ? ? returnSUCCESS;
? }
}
4 注解相關常量
struts.convention.classes.reload,默認值為false。表示在修改注解后需要重啟Tomcat!
Struts2約定(了解)
1 什么是約定
使用約定可以連注解都不寫,是真正的零配置,但是它的能力有限,所以這種方式不可取的。
l Struts2會對Action的命名,以及Action的包名都有限制;
l Struts2會對結果頁面的存放路徑,以及結果頁面的名稱也都有限制。
使用約定與使用注解一樣,也要導包:struts2-convention-plugin-2.3.15.jar
1? ? ? 約定對Action的限制
約定Action類名:
要求Action的命名必須以“Action”為后綴,例如:UserAction、BookAction等等。可以使用下面常量來修改后綴限制:
<constant name="struts.convention.action.suffix" value="Action"/>
約定Action包名:
要求Action必須放到action、actions、struts、struts2包中。例如:cn.itcast.action、cn.itcast.sturts、cn.itcast.action.user等等。可以使用下面常量來修改Actoin的包
<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/>
3 通過Action的限制得到訪問路徑
上面已經知道約定對Action的限制,現在通過Action的包名和類名得到它的訪問路徑
例如:cn.itcast.action.UserAction,它的訪問路徑為/user.action
例如:cn.itcast.action.user.UserAction,它的訪問路徑為/user/user.action。因為在約定包action后面還有一層包user,那么這一層就是名稱空間了。
例如:com.action.cn.itcast.user.UserAction,它的訪問路徑為/cn/itcast/user/user.action。
例如:cn.itcast.action.user.UserListAction, 它的訪問路徑為/user/user-list.action。當Action名稱由多個單詞構成,那么在訪問路徑中使用“-”來連接多個單詞。
4 通過Action的限制得到結果頁面路徑
Struts2約定限制結果頁面必須放到/WEB-INF/content/目錄中,可以通過下面常量來修改這個限制。
<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>
當cn.itcast.action.UserAction返回結果為success時,Struts會依次查找如下結果頁面:
l /WEB-INF/content/user-success.jsp;
l /WEB-INF/content/user-success.html;
l /WEB-INF/content/user.jsp
當cn.itcast.action.user.UserListAction返回的結果為error時,Struts會依次查找如下結果頁面:
l /WEB-INF/content/user/user-list-error.jsp;
l /WEB-INF/content/user/user-list-error.html;
l /WEB-INF/content/user/user-list.jsp。