Struts2 обрабатывает несколько действий в одной форме

У меня форма содержит три кнопки print/export/save,

<s:form action="/userAction">
    <s:submit type="image" value="%{'print'}" src="/print.png" />
    <s:submit type="image" value="%{'export'}" src="/export.png" />
    <s:submit type="image" value="%{'save'}" src="/save.png" />
</s:form>

Как я могу отобразить это в struts.xml?

2 ответа

Решение

В struts.xml действие отображается через <action тег

<action name="userAction" class="...

кнопки отправки должны включать method атрибут для вызова соответствующих методов действия

<s:submit type="image" value="%{'print'}" src="/print.png" method="print" />
<s:submit type="image" value="%{'export'}" src="/export.png" method="export" />
<s:submit type="image" value="%{'save'}" src="/save.png" method="save" />

Для того, чтобы использовать method атрибут <s:submit> тег DynamicMethodInvocation должен быть включен. Другое решение заключается в использовании action приписывать.

В JSP:

<s:form action="save">
    <s:submit type="image" value="%{'print'}" src="/print.png" action="print" />
    <s:submit type="image" value="%{'export'}" src="/export.png" action="export" />
    <s:submit type="image" value="%{'save'}" src="/save.png" />
</s:form>

В Struts.xml:

<action name="print" class="...">
  <result>...</result>
</action>
<action name="export" class="...">
  <result>...</result>
</action>
<action name="save" class="...">
  <result>...</result>
</action>
Другие вопросы по тегам