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字節解析錯誤