struts2 技巧篇

1.action的屬性都封裝在request的struts.valueStack,可用

com.opensymphony.xwork2.util.ValueStack stack=(ValueStack)request.getAttribute("struts.valueStack"); 

String[] strBook=(String[])stack.findValue("book"); 

,其中book是action的屬性名稱爲一個String數組

2.定義struts.xml中的<include file=""/>文件時,可將文件定義在web-inf下,可定義自己的文件夾方便管理,例如:

<include file="../struts-config/login-struts.xml"></include>

加..是因爲struts.xml發佈後再web-inf的classes路徑下

3.可用struts.xml中的<constant name=" struts.custom.i18n.resources " value="mess" />,標籤代替struts.properties屬性文件

4.在一個Action中定義多個控制方法,調用有兩種方式

          4.1<action name="AliasHelloWorld" class="tutorial.HelloWorld" method="aliasAction">

                       <result>/HelloWorld.jsp</result>

            </action>

          4.2 直接在<form action="login.action!方法名"或者action="login!方法名.action

5.在標籤中用 theme="simple",可以去掉自帶的樣式

6.在Action中獲取HttpServletRequest,HttpServletRequest,HttpSession的方法

                            HttpServletRequest request = ServletActionContext.getRequest(); 

                           HttpServletResponse response = ServletActionContext.getResponse(); 

                             HttpSession session = request.getSession();

7.namespace用法

如果在package標籤中指定namespace,如

<package name="login" extends="struts-default" namespace="/login">

在jsp頁面中訪問方法,如下:

<s:form action="login/login.action" theme="simple">

 

8.jsp的Form的Action值,如果加"/",跳轉不報錯,但不執行execute

9.在Tomcat上發佈項目的方法:在Conf-->server.xml裏的<Host>標籤裏,添加<Context path="/struts2" docBase="E:\Project\WebRoot" reloadable="true"/>,注意不能使用中文,否則Tomcat啓動報錯,byte字節解析錯誤

 

 

 

發佈了36 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章