Как установить значение по умолчанию в grails g:select?
У меня есть доменный объект Город
City{
Long id
String city
...
String toString() {
return "$city"
}
}
Скажем, таблица такая.
id name
1 ABC
2 PQR
3 XYZ
список городов, которые я населяю в gsp, вот так
<g:select name="city" from="${City.list()}" />
Теперь мне нужно заполнить значение по умолчанию города, который приходит из контроллера, что-то вроде этого
cmd.city = "PQR"
render template:'messageDisplay', model:[cmd: cmd]
Сейчас я пытаюсь заполнить значение по умолчанию "PQR" в списке выбора
<g:select name="city" from="${City.list()}" value="${cmd.city}" />
но "PQR" не отображается в качестве значения по умолчанию.
1 ответ
Решение
У вас есть объекты Strings и City, и вы пытаетесь сравнить их...
Измените свой выбор на:
<g:select name="city"
from="${City.list()}"
value="${cmd?.city?.id}"
optionKey="id" />
И в вашем контроллере:
cmd.city = City.findByName( "PQR" )