g里面的条件:选择gsp标签

时间:2016-04-08 13:47:02

标签: grails gsp

我正在使用g:选择并希望输入默认值。但是,当默认值为null时,它应显示一个'请选择一个'。但是,我似乎无法解决这个问题。

代码如下:

这是地址对象 - 下拉列表中包含的选项

Address
    Long id
    String name
    Sheriff sheriff
    String phaseCode

ListOfSheriffs是警长列表 - 包含警长对象列表

Sheriff
    Long id
    String name
    //other property here

defaultSheriff是地址的默认警长

以下代码是我的gsp上的代码

<g:select optionKey = "id" 
          optionValue = "${{sheriff.name +' '+sheriff.id}}"  
          name="sheriff.name"
          from="${ListOfSheriffs}"
          value="${(defaultSheriff == null) ? 'Please select one' : defaultSheriff}" />

然而,默认的Sheriff是空的&#39;请选择一个&#39;不显示,页面只显示ListOfSheriffs的第一个警长。

我从here得到了这个解决方案 。而且不太确定我遗漏了什么。

另外,我尝试根据我在docs上阅读的内容使用noSelection。但是,结果是,页面上下拉列表中的默认选择值始终为“请选择一个”。即使defaultSheriff不为null

<g:select optionKey = "id" 
          optionValue = "${{sheriff.name +' '+sheriff.id}}"  
          name="sheriff.name"
          from="${ListOfSheriffs}"
          value="${defaultSheriff}"
          noSelection="[null:'Please select one']" />

如果我提供的内容不清楚,请随意指出它添加,我很乐意详细说明。感谢

1 个答案:

答案 0 :(得分:0)

我会说你需要这样的smth

<g:select optionKey = "id" 
          optionValue = "${{it.name +' '+ it.id}}"  
          name="sheriff.name"
          from="${ListOfSheriffs}"
          value="${sheriff?.id ?: defaultSheriff?.id}"
          noSelection="['':'Please select one']" />