【Struts2】为Action的属性注入值

来源:互联网 发布:dmp文件 oracle 软件 编辑:程序博客网 时间:2024/04/30 21:19

在Struts2中提供了依赖注入的功能
在ridirectAction重定向至某一action配置中

<result type="xxx">
 <param name="actionName">action名称</param>
 <param name="namespace">/命名空间</param> 
</result>
当把result类型声明为redirectAction的时候,如果若重定向到其他命名空间下action的时候,我们需要使用param配置节点,为xxx这个类型所对应的这个类中actionName、namespace这两个属性注入值
这就是属于依赖注入。
在Struts2中的配置文件中,我们可以很方面的为Action中的属性注入值。注意:属性必须提供set()若在页面中显示 必须提供get()
<action name="xxx" class="xxx.xxx.xxx.xxxAction">
<param name="名称" >注入的属性值</param>
     </action>
【strus处理请求后缀】
若对某action进行访问,默认使用.action后缀访问Action。其实默认后缀是可以通过常量“struts.action.extension”进行修改  我们可以配置Struts2只处理以.do为后缀的请求路径
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.action.extension" value="do"/>
</struts>

如果用户需要指定多个请求后缀 ,则多个后缀之间以英文逗号【,】
隔开

<constant name="struts.action.extension" value="do,go"/>
常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,两证配置方式如下:
<struts>
<constant name="struts.action.extension" value="do,go,action"/>
<struts>

在struts.properties中配置常量
struts.action.extension=do

因为常量可以在下面多个配置文件中进行定义,所以我们需要了解struts2加载常量的搜索吮吸:
struts-default.xml
struts-plugin.xml
struts.xml
strtus.properties
web.xml
如果在多个文件中配置同一个常量,则后一个文件配置的常量值会覆盖前面文件中配置的常量

【常用到的常量】
<!--指定默认编码集 ,作用于HttpServletRequest的setCharacterEncoding方法和freemarker、velocity

setCharacterEncoding作用:当以post方式发送中文请求参数的时候,tomcat接收到这个参数默认的编码的是ISO8859-1,若想得到正确的中文参数,我们可以调用request的setCharacterEncoding() 所有配置文件中的value值应用于setCharacterEncoding这个方法
-->
<constant name="struts.i18n.encoding" vlaue="UTF-8"/>


<!--该属性指定需要的Struts2 处理的请求后缀,该属性的默认是action,即所有匹配*.action的请求都由Struts2出来
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
-->
<constant name="struts.action.extension" value="do,go,action"/>
<!--设置浏览器是否缓存静态内容,默认值为true(生产环境下使用)开发阶段最好关闭-->
<constant name="struts.server.static.browserCache" value="false"/>
<!--当struts的配置文件修改后,系统时候自动重新加载该文件,默认值为false(生产环境下使用)开发阶段最好打开-->
<constant name="struts.configuration.xml.reload"/>

 

 

<!--开发模式下使用,这样可以打印出更详细的错误信息-->
<constant name="sruts.devMode" value="true"/>
<!--默认属视图的主题-->
<constant name="struts.ui.theme" value="simple"/>
<!--与Spring集成时,指定spring负责action对性的创建-->
<constant name="struts.objectfactory" value="spring"/>
<!--该属性设置Struts2 是否支持动态方法调用,该属性的默认值是ture。如果需要关闭动态方法的调用,则可设置该属性为false-->
<constant name="struts.enable.dynameicMethodlnocation" value="false"/>
<!--上传文件的大小限制
比方说利用struts 上传大问比如说超过5M,默认的情况下struts2是不接收的也就是说struts2不接收超过他默认大小限制的文件
注:上传文件的大小不是单文件的大小而上上传文件总数的大小
-->
<constant name="struts.multipart.maxSize" value="10701096"/>

原创粉丝点击