Struts.xml

<!-- 指定由spring负责action对象的创建 -->
<constant name="struts.objectFactory" value="spring" />
这里的value,就是:
<pre name="code" class="html"><bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
 

ObjectFactory,是xwork中很重要的一个类,是产生action的地方。单独使用xwork的时候,action都是这个类创建的。

而Struts2拥有三个对象工厂: (1)   org.apache.struts2.spring.StrutsSpringObjectFactory(struts2的spring插件提供);

                                                      (2)   org.apache.struts2.impl.StrutsObjectFactory(struts2自带);

                                                      (3)   com.opensymphony.xwork2.ObjectFactory(xwork自带),且前两者都继承于后者。

<!-- 所有匹配*.action的请求都由struts2处理 -->
<constant name="struts.action.extension" value="action" />

web.xml里面的过滤器配置只支持以下三种 :

                           ① 完全匹配 <url-pattern>/test/zhidao.action</url-pattern>

                           ② 目录匹配 <url-pattern>/test/*</url-pattern>

                           ③ 扩展名匹配 <url-pattern>*.action</url-pattern>

<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />

   devMode有以下两种模式:

                 ①开发模式(devMode);此时 DevMode=ture;

                 ②产品模式(proMode);此时  DevMode=false;

<!-- struts配置文件改动后,是否重新加载,默认值为false,开发阶段最好true-->
<constant name="struts.configuration.xml.reload" value="true" />

<!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段最好false -->
<constant name="struts.serve.static.browserCache" value="false" />

<!-- 请求参数的编码方式,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />

struts.i18n.reload该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false。

<!-- 文件上传最大值 -->
<constant name="struts.multipart.maxSize" value="104857600" />

备注:

Struts.xml相关配置如下:

 <action name="upload" class="action.UploadAction">
  <result name="success">/success.jsp</result>
  <result name="input">/upload.jsp</result>
<interceptor-ref name="fileUpload">
  <param name="maximumSize">5000000</param>
  </interceptor-ref>
</action>

 

解决方法:

 在struts.xml中加入 <constant name="struts.multipart.maxSize" value="10000000"/>,大约10M

原因:maximumSize须小于 struts.multipart.maxSize,而默认值不足5M,所以修改maximumSize无效,

应先修改 struts.multipart.maxSize

---------------------------------------------- 

即,

若 上传文件大小<maximumSize ,上传成功

若 maximumSize<上传文件大小<  struts.multipart.maxSize , 若 上传文件大小 >   struts.multipart.maxSize ,

Struts has detected an unhandled exception:

Messages:No result defined for action action.UploadAction and result input  

<!-- 让struts2支持动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
作用:动态调用action方法,action!method

<!-- Action名称中是否还是用斜线 -->
<constant name="struts.enable.SlashesInActionNames" value="false" />

该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。

<!-- 允许标签中使用表达式语法 -->
<constant name="struts.tag.altSyntax" value="true" />

指定在struts2的标签中是否使用"%{}"的语法来计算标签的字符串属性中的表达式。可选的值为true和false,默认值为true。

<!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
<constant name="struts.dispatcher.parametersWorkaround" value="false" />

对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。

<constant name="struts.multipart.saveDir" value="/tmp"></constant>
指定文件上传的临时目录。默认使用javax.servlet.context.tempdir。 详情







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值