是否可以在Struts2的action标记中指定动态的s:form属性?我想要类似下面的东西。

<c:set var="formAction" value="baseAction" />
<c:if test="${someCondition}">
     <c:set var="formAction" value="childAction" />Ac

<s:form method="post" action="${formAction}">
    <s:input....../>
    <s:select...../>
</s:form>


我知道可以使用javascript来实现,但我想避免重构。
我尝试使用scriplet实现此目的,但问题是Struts2标记不具有运行时属性。我什至尝试了OGNL,但也没有帮助。

最佳答案

使用Struts2标签设置值和检查条件,然后使用OGNL放置action属性。

<s:set var="formAction" value="'baseAction'" />
<s:if test="some_condition">
  <s:set var="formAction" value="'childAction'" />
</s:if>

<s:form method="post" action="%{#formAction}">
  <s:input....../>
  <s:select...../>
</s:form>

10-06 11:14