У меня есть действие в struts.xmlМножественные точки входа в Struts действий (миграции Struts 2.2.3 -> 2.3.1)
<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 метод-отображение не работает. Вместо вызова соответствующего метода (например, «shopPdfReprint») вызывается только метод execute
класса.
Я просмотрел Документы, но, к сожалению, не нашел подсказки, как приспособиться к 2.3.1 Кто-нибудь сталкивался с этим? Справка:
Танки много! К сожалению, я мог бы попробовать это только завтра. Я дам вам немедленную обратную связь. Я не изменил конфигурацию. Мне интересно, что вы упоминаете «отключение DMI». Существует ли другое поведение по умолчанию? –
По умолчанию DMI включен, что позволяет использовать специальный синтаксис в URL-адресе для выполнения других методов, кроме сопоставления с этим URL-адресом, и его использование использует тег submit. –
Да! Большое спасибо! Работает как шарм. После того, как вы дали мне подсказку, я снова посмотрел на эту проблему. Кажется, DMI отключен по умолчанию по соображениям безопасности. Если бы мы не перенесли процесс миграции в Spring MVC, я бы теперь решил переключиться. –