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字节解析错误