grails,将数据从控制器传递到生成的 _form.gsp 视图
grails, pass data from controller to generated _form.gsp view
我得到了一个域 class(预订),其中包含一个用户 属性(使用 SpringSecurityCore 插件)和相应的视图(_form、创建、编辑、索引、show.gsp)。
普通用户应该无法以正常方式设置用户:
<g:select id="user" name="user.id" from="${usermanagement.User.list()}" optionKey="id" required="" value="${dailyBookingInstance?.user?.id}" class="many-to-one"/>
有了这个,每个用户都可以 select 来自下拉菜单中的所有用户。普通用户不应该这样做,它应该自动设置为当前登录用户。
为此,我在 BookingController 中创建了一个函数:
def currentUser() {
User user = springSecurityService.getCurrentUser()
log.error(user)
[user: user]
}
日志有效,我在控制台中得到了正确的输出 - 但我不知道如何在 _form.gsp 中获取此用户。据我所知,user
应该在名为 currentUser.gsp
的视图中可用,但我需要他在 _form.gsp
.
中
我的目标是通过
在 Admin
和 User
之间发散我的观点
<sec:ifAllGranted roles="ROLE_ADMIN">secure stuff here</sec:ifAllGranted>
并在那里设置用户下拉菜单的内容:
- 管理员:
from="${usermanagement.User.list()}
- 普通用户:
from="${user}
(return 来自控制器中的 currentUser())
有了这个(普通用户),我收到错误:Cannot get id from null
,这意味着该用户在视图中不可用。
_form.gsp 作为一个模板,您不会直接为它提供控制器方法。你必须将价值传递给一些真实的观点。
默认情况下,_form.gsp 模板在 edit.gsp 和 create.gsp 中调用。
您应该能够 return 当前用户像这样查看您的视图:
def edit(Booking bookingInstance){
...
User user = springSecurityService.getCurrentUser()
respond bookingInstance, model:[user:user]
}
然后在您的_form.gsp
中使用它
我得到了一个域 class(预订),其中包含一个用户 属性(使用 SpringSecurityCore 插件)和相应的视图(_form、创建、编辑、索引、show.gsp)。
普通用户应该无法以正常方式设置用户:
<g:select id="user" name="user.id" from="${usermanagement.User.list()}" optionKey="id" required="" value="${dailyBookingInstance?.user?.id}" class="many-to-one"/>
有了这个,每个用户都可以 select 来自下拉菜单中的所有用户。普通用户不应该这样做,它应该自动设置为当前登录用户。
为此,我在 BookingController 中创建了一个函数:
def currentUser() {
User user = springSecurityService.getCurrentUser()
log.error(user)
[user: user]
}
日志有效,我在控制台中得到了正确的输出 - 但我不知道如何在 _form.gsp 中获取此用户。据我所知,user
应该在名为 currentUser.gsp
的视图中可用,但我需要他在 _form.gsp
.
我的目标是通过
在Admin
和 User
之间发散我的观点
<sec:ifAllGranted roles="ROLE_ADMIN">secure stuff here</sec:ifAllGranted>
并在那里设置用户下拉菜单的内容:
- 管理员:
from="${usermanagement.User.list()}
- 普通用户:
from="${user}
(return 来自控制器中的 currentUser())
有了这个(普通用户),我收到错误:Cannot get id from null
,这意味着该用户在视图中不可用。
_form.gsp 作为一个模板,您不会直接为它提供控制器方法。你必须将价值传递给一些真实的观点。
默认情况下,_form.gsp 模板在 edit.gsp 和 create.gsp 中调用。
您应该能够 return 当前用户像这样查看您的视图:
def edit(Booking bookingInstance){
...
User user = springSecurityService.getCurrentUser()
respond bookingInstance, model:[user:user]
}
然后在您的_form.gsp
中使用它