2010-06-10 30 views
5

我怎樣才能跳到控制器中的另一個動作?如何直接提交按鈕到另一個動作

我有表單和幾個提交按鈕。每個子提交按鈕都有名稱。

<g:form action="save" method="post"> 
    <g:input name="title" value="${letter.title}" /> 
    <g:input name="comments[0].text" value="${letter.comments[0].text}" /> 
    <g:submitButton name="save" value="save" /> 
    <g:submitButton name="addComment" value="add" /> 
</g:form> 

def save = { 

    if (params.addComment){ 
     letter.addToComents( new Comment()) 
     render(view:'form', model:["letter": letter]) 
     return 
    } 

    ... 
    if (letter.save()) 
    ... 
} 

def addComment = { 
     ... 
    } 

它有效,但它不好。我想從塊「addComment」移動代碼到動作add評論:

def save = { 

    if (params.addComment){ 
     // it don´t work 
     redirect (action:"addComment") 
    } 

    ... 
    if (letter.save()) 
    ... 
} 

def addComment = { 
     letter.addToComents( new Comment()) 
     render(view:'form', model:["letter": letter]) 
     return 
    } 

或者它存在更好的解決方案嗎? 這將是很好:

<g:submitButton name="save" value="save" action="save" /> 
<g:submitButton name="addComment" value="add" action="addComment" /> 

非常感謝 湯姆

回答

13

使用g:actionSubmit標籤來代替。

 <g:form method="post"> 
      <g:input name="title" value="${letter.title}" /> 
      <g:input name="comments[0].text" value="${letter.comments[0].text}" /> 
      <g:actionSubmit action="save" value="Save" /> 
      <g:actionSubmit action="addComment" value="Add Comment" /> 
     </g:form> 
+4

謝謝,我很笨。 – 2010-06-10 14:53:50

+1

@tom LOL一個幸運的愚蠢(看到你的個人資料8後) – 2012-09-08 23:21:14

0

對於那些誰使用Twitter的引導插件(或需要除了在按鈕上的文字的東西),並希望將glyphicon添加到該按鈕,您將需要使用的按鈕標籤。所以,你需要做的是這樣

代碼片段1.

<g:form role="form" method="post"> 
     ...your inputs 

    <button type="submit" name="_action_save"> 
    <span class="glyphicon glyphicon-ok"></span> 
    Save 
    </button> 

    <button type="submit" name="_action_saveAndNew"> 
     <span class="glyphicon glyphicon-ok"></span> 
     Save and New 
    </button> 
    </g:form> 

凡在你的按鈕,您將需要使用前綴

_action_ 

指定動作的名稱來得到這樣的事情

name="_action_yourActionName" 

只是有點提醒,因爲我使用twitter Bottstrap插件3.0這是你怎麼加glyphicon

<span class="glyphicon glyphicon-ok"></span> 

代碼片段1也有類似的行爲:

<g:form role="form" method="post"> 
     ...your inputs   

    <g:actionSubmit action="save" value="Save" /> 

    <g:actionSubmit action="saveAndNew" value="Save and New" /> 

    </g:form> 

到底這個例子可以幫助您有一個情況類似的行爲actionSubmit可以,你不想要或不能使用它。這只是一種選擇,只要有可能,最好使用actionSubmit。

相關問題