Struts操作中的java多入口点(迁移Struts 2.2.3>2.3.1)
我在struts.xml
中有一个动作:
<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>
具有多个表单元素,所有元素都绑定到一个操作。
每个表单都有一个单独的提交按钮,带有一个不同的method
(例如"shopPdfReprint"
)。
每个method
都映射到相应类中的一个方法
Struts 2.2.3的一切都很好。但是在迁移到2.3.1之后,方法映射不起作用。只调用类的execute()
方法,而不是调用相应的方法(例如"shopPdfReprint"
)
我查看了文档,但不幸的是没有找到任何线索,即如何适应2.3.1
有人碰到这个吗
# 1 楼答案
如果有人正在移动或使用Struts2.5,那么他们不必使用Struts映射操作。xml。 Strtus 2.5是基于注释的,因此在操作类开发人员可以使用注释在单个类中映射多个操作
从旧struts版本到struts 2.5版本,此链接可能会有所帮助
https://struts.apache.org/docs/struts-23-to-25-migration.html
下面是简单的演示代码
# 2 楼答案
这是因为您关闭了DMI。
method
属性可以像以前一样使用submit标记,即使在重新提交安全修复之后也是如此。使用常量启用DMI如果不起作用,请告诉我