如何根据条件在grails中显示和隐藏按钮?

如何根据条件在grails中显示和隐藏按钮?,grails,button,controller,conditional-statements,Grails,Button,Controller,Conditional Statements,在我的控制器中,我有条件,例如,如果值为80,那么我需要在视图中显示某个按钮,如果值为50,那么我需要在视图中显示另一个按钮。在grails中如何实现这一点?它似乎不是控制器逻辑。您可以在视图中执行以下操作: <g:if test="${val == 80}"> <input type="submit" value="Submit"> </g:if> <g:else> <input type="button" value="

在我的控制器中,我有条件,例如,如果值为80,那么我需要在视图中显示某个按钮,如果值为50,那么我需要在视图中显示另一个按钮。在grails中如何实现这一点?

它似乎不是控制器逻辑。您可以在视图中执行以下操作:

<g:if test="${val == 80}">
      <input type="submit" value="Submit">
</g:if>
<g:else>
   <input type="button" value="a button">
</g:else>
class TestController {
    def index = {
      ['val':80] //or [val: params.val] if you want to get it from parameters.
    }

}如果要在同一页面上执行此操作,需要javascript。

如果您想根据条件呈现页面,请尝试标记我觉得更好的方法是使用标记库,而不是在.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" />'
}
//在您的gsp中
//在标记库中
def showButtons={attrs->
def myValue=attrs.myValue
def value=“提交”
def type=“提交”
如果(myValue!=80){
value=“一个按钮”
type=“按钮”
}

是的,我做了一些类似的事情,但是如何传递val?似乎我的控制器中的val值未被视图识别。请检查此项