我正在使用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']" />
如果我提供的内容不清楚,请随意指出它添加,我很乐意详细说明。感谢
答案 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']" />