带有多个提交标签的Struts 2.3表单,其中action属性不起作用

时间:2014-01-20 12:34:46

标签: java struts2

我有一个这样的表格:

<s:form>
<s:submit action="act1"  />
<s:submit action="act2"  />
</s:form>

在生成的HTML上我有:

<input type="submit" name="action:act1">
<input type="submit" name="action:act2">

现在使用struts2.3它不起作用,但使用struts 2.0就可以了。

日志说参数:action:act1在excludeParams

问题出在params拦截器: defaultStack i版本2.3上有一个类似^action:.*的拦截器,用于拦截器params拦截器。

支柱 - 缺省 - XML:

<interceptor-stack name="defaultStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="scopedModelDriven"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="multiselect"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params">
<param name="excludeParams">^dojo\..*,^struts\..*,^session\..*,^request
\..*,^application\..*,^servlet(Request|Response)\..*,^parameters
\..*,^action:.*,^method:.*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="debugging"/>
<interceptor-ref name="deprecation"/>
</interceptor-stack>

我该怎么办?  感谢

1 个答案:

答案 0 :(得分:2)

您需要修改struts.xml文件。添加以下行

<constant name="struts.mapper.action.prefix.enabled" value="true" />