2013-10-04 53 views
7

有沒有在Struts2的s:form標記中指定動態action屬性的方法?我想要下面的東西。動態s:表單動作

<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,但我想避免重構。 我已經嘗試使用腳本實現此目的,但問題是Struts2標記不會採取運行時屬性。我甚至嘗試使用OGNL,但它也沒有幫助。

回答

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> 
2

使用s:url標籤打造行動網址動態

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

其實Struts標籤的屬性不接受,不僅小腳本也JSTL EL表達式。

+0

無需爲''操作使用''標籤。 –