7

有没有办法在 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 来实现,但我想避免重构。我曾尝试使用 scriplets 来实现这一点,但问题是 Struts2 标签不采用运行时属性。我什至尝试使用 OGNL,但它也没有帮助。

4

2 回答 2

7

使用 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>
于 2013-10-04T17:43:08.903 回答
2

Use the s:url tag to build the action url dynamically.

<s:url action="%{somePoperty}" var="myUrl"/>
<s:form action="%{#myUrl}"> 

In fact Struts tag's attributes don't accept not only scriptlets but also JSTL EL expressions.

于 2013-10-04T18:57:09.650 回答