一、Action属性依赖注入的问题
Struts2为Action中的属性提供了依赖注入功能,在Struts2的配置文件中,我们可以很方便地为Action中属性注入值,注意的是属性中必须提供setter方法
1、Action中的代码:
package cn.itcast.action;
public class LoginAction {
private String companyName;
public String getCompanyName() {
return companyName;
}
public String execute() {
return "success";
}
}
2、配置文件
<action name="hello" class="cn.itcast.action.LoginAction" method="execute">
<result name="success">/WEB-INF/index.jsp</result>
<param name="companyName">中国有限公司</param>
</action>
上面是通过<param>结点为action的savePath属性注入"companyName"
注意:即使为属性注入值时中文,也不用考虑编码问题~
二、指定需要处理的请求后缀
默认是使用.action后缀访问Action的,
一般可以通过"struts.action.extension"进行修改的,例如指定多个请求后缀,多个后缀之间用英文逗号隔开,如在struts.xml文件中配置:
<constant name="struts.action.extension" value="do,action"/>
只要使用指定后缀,使用缺省方式访问后缀会提示找不到网页
三、常量定义
上述的改变后缀的方法也可以在struts.proprtise中配置常量(文档上不建议):
struts.action.extension=do
1、因为常量可以在下面的多个配置文件中进行定义,所以Struts2加载常量的搜索顺序如下:(从第一个往后)
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
如果多个文件中配置了同一个常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量。
2、常用的常量介绍
1>指定默认的编码集,相当于作用于httpServletRequest 的setCharacterEncoding方法和freemarker、velocity的输出
<constant name="struts.i.18n.encoding" value="utf-8"/>
2、如果用户需要指定Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
<constant name="struts.action.extension" value="do"/>
3、设置浏览器是否缓存静态内容,默认值为true(生产环境下使用)、开发阶段最好关闭
<constant name="struts.serve.static.browserCache" value="false"/>
4、当Struts的配置文件修改后。系统是否自动重新加载该文件,默认值为false(生产环境下使用)、开发阶段最好打开
<constant name="struts.configuration.xml.reload" value="true"/>
5、开发模式下使用,这样可以打印出更详细的错误信息
<onstant name="struts.devMode" value="true"/>
6、默认的视图主题
<constant name="struts.ui.theme" value="simple"/>
7、与Spring集成时,指定由spring负责action对象的创建
<constant name="struts.objectFactory" value="spring"/>
8、该属性设置Struts2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。
<constant name="struts.enable.DynamicMethodinvocation" value="false"/>
9、上传文件大小的限制
<constant name="struts.multipart.maxSize" value="10701096"/>
网友评论