试图成为grails转换我已经开始将现有的应用程序转换为Grails和Groovy。它工作得很好,但我卡在选择标签的转换上。
我有一个域类:
package todo
class Person {
String ssn
String firstname
String familyname
String role
String emailname
String emailserver
...
当创建一个新的“待办事项”任务时,可能会从系统中那些属于开发人员的人那里分配一个所有者,而我开始工作了(来自PHP的相当直接的翻译):
<select id="owner" name="owner">
<option>Noboby ...</option>
<g:each in="${Person.list()}">
<g:if test="${it?.role=='developer'}">
<option value="${it?.id}">${it?.firstname} ${it?.familyname}</option>
</g:if>
</g:each>
</select>
但是,使它更加“粗糙”的任何尝试都失败了。如何将其模制成Grails v2.2.1代码?我花了几个小时阅读,尝试,失败。
最佳答案
试试这个代码:
<g:select optionKey="id" from="${Person.findAllByRole('developer')}" optionValue="${{it.fullName}}" value="${yourDomainInstance?.person?.id}" noSelection="['null':'Nobody']"></g:select>
在你的课上:
class Person {
....
String getFullName(){
it?.firstname+' '+ it?.familyname
}
static transients = ['fullName']
....
}
有关更多详细信息,请参见g:select tag。
关于list - 填充g:从查询中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519207/