2013-05-15 129 views
0

在我的控制器中,我有條件,例如,如果值是80,那麼我需要在我的視圖中顯示某個按鈕,如果值爲50,那麼我需要在我的視圖中顯示不同的按鈕。我如何在Grails中做到這一點?如何根據條件在grails中顯示和隱藏按鈕?

+3

[7.2.2.2邏輯和迭代(http://grails.org/doc/latest/guide/theWebLayer.html#tagLogicAndIteration) – hsan

回答

1

它似乎不是一個控制器邏輯。你可以在視圖中做這樣的事情:

<g:if test="${val == 80}"> 
     <input type="submit" value="Submit"> 
</g:if> 
<g:else> 
    <input type="button" value="a button"> 
</g:else> 

如果你想從控制器到視圖,它像發送VAL:

class TestController { 
    def index = { 
     ['val':80] //or [val: params.val] if you want to get it from parameters. 
    } 

}

+0

雅我沒有類似的東西,但是你如何通過VAL?看來我從我的控制器中獲得的val值並沒有被視圖所認可。 –

+0

檢查了這一點http://stackoverflow.com/questions/4624214/gsp-parameter-passing-from-controller –

0

如果你想在同一頁上做這個,你需要javascript。
如果要根據條件呈現頁面,請嘗試使用<g:if>標記

0

我覺得更好的方法是使用標記庫而不是在.gsp中使用邏輯。如果在你的應用程序的其他地方需要它,你也可以重用這個邏輯。

// in your gsp 
<lib:showButtons myValue="$val"/> 

// in your tag lib 
def showButtons = { attrs -> 
    def myValue = attrs.myValue 
    def value = "Submit" 
    def type = "submit" 

    if(myValue != 80) { 
    value = "a button" 
    type = "button" 
    } 

    out << '<input type="$type" value="$value" />' 
}