我在 struts.xml
中有一个 Action :
<action name="reprint" class="reprintAction">
<result name="success" type="redirectAction">
<param name="actionName">reprint</param>
<param name="namespace">/x</param>
<param name="errorFlag">${errorFlag}</param>
<param name="message">${message}</param>
</result>
<result name="view">/jsp/reprintOverview.jsp</result>
</action>
JSP:
<s:form action="reprint">
<s:select name="selectedPdfPrinter" list="shopPdfPrinterList" listKey="deviceId" listValue="deviceId" theme="simple"/>
<s:submit value="Print" theme="simple" method="shopPdfReprint"/>
</s:form>
有几个表单元素,都绑定(bind)到一个 Action 。
每个表单都有一个单独的提交按钮,具有不同的方法
(例如“shopPdfReprint”
)。
每个方法
都映射到相应类中的一个方法。
Struts 2.2.3 一切正常。但是在迁移到 2.3.1 之后,方法映射不起作用。而不是调用相应的方法(例如 "shopPdfReprint"
),仅调用类的 execute()
方法。
我看过文档,但不幸的是没有找到任何线索,如何适应 2.3.1
有人遇到过这个吗?
最佳答案
发生这种情况是因为您关闭了 DMI . method
属性与以前一样使用提交标记,即使在重新发送安全修复程序之后也是如此。使用常量启用 DMI
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
如果它不起作用,请告诉我。
关于java - Struts Action 中的多个入口点(迁移 Struts 2.2.3 -> 2.3.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052630/