这个问题是here问题的延续。
下面的代码来自我的一个观点,它工作正常,但我很难将此代码移动到控制器。如果我的包和类在下面的代码中不清楚,请查看上一个问题以了解它们的排列方式。
<g:set var="roleAdmin" value='${org.me.example.userrole.Role.findByAuthority("ROLE_ADMIN")}' />
<g:set var="roleOfficeProfessional" value='${org.me.example.userrole.Role.findByAuthority("ROLE_OFFICE_PROFESSIONAL")}' />
<g:set var="roleDriver" value='${org.me.example.userrole.Role.findByAuthority("ROLE_DRIVER")}' />
<g:select name="loggedBy.id" from="${org.me.example.userrole.UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user}" optionKey="id" value="${loadInstance?.loggedBy?.id}" />
这可能是我个人的一个基本误解,但是我无法获得我在控制器中使用的任何方法在我的视图中工作,只有Grails创建的方法(即list
,{ {1}},create
,delete
等)可行。任何帮助/建议都会有所帮助。
答案 0 :(得分:2)
来自和值属性的不是来自控制器中的方法/操作。它们通常来自请求对象。我在你的另一个线程中给你代码来正确地执行此操作,但是这里再次,稍微更详细......
class SomeController {
def show = {
def loadInstance = whateverYouGetItFrom
def users = UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user
[loadInstance:loadInstance,users:users]
}
}
然后你会有一个包含
的show.gsp<g:select name="loggedBy.id" from="${users}" optionKey="id" value="${loadInstance?.loggedBy?.id}" />
如果我误解了您的问题,请提供更多详情。