2014-03-12 2 views
0

У меня есть домен объекта ГородКак установить значение по умолчанию в grails g: select?

City{ 
Long id 
String city 
... 
String toString() { 
     return "$city" 
} 
} 

Say стол, как это.

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» не отображается как значение по умолчанию.

ответ

2

Вы Строки и объектов и пытаются их сравнивать ...

Измените ваш выбор, чтобы:

<g:select name="city" 
      from="${City.list()}" 
      value="${cmd?.city?.id}" 
      optionKey="id" /> 

И в контроллере:

cmd.city = City.findByName("PQR") 
+0

о! это можно сделать наоборот? как я могу получить список строк с названиями городов вместо городских объектов? – user1298426

+1

Вы можете попробовать: 'from =" $ {City.list(). Name} "' –

+0

yup, который сработал !!! Спасибо – user1298426

Смежные вопросы