1

所以这是交易,我有一个用户类 secUser ,static hasMany = [pid:Process]我也在使用 spring security(不确定它是否相关)。

我正在尝试做的事情:为当前登录的用户显示包含 pids 的下拉框,不知道该怎么做,但是在玩了之后做了这个

<g:if test="${secUserInstance?.pid}"> <g:select optionKey="id" optionValue="pid" name="pid" from="${secUserInstance.pid}" />

我的问题是:当我将此代码放入主页/时,它什么也不做,但是如果我转到/secUser/show/1它会显示属于 user 的 pid 列表。似乎无法理解为什么当我到达 secUser/show 时它会获取信息,但在其他任何地方都没有......

PS 我是 Grails 和 Stackoverflow 的新手,但我已经坚持了好几天了,不知道还能去哪里。

4

1 回答 1

0

因此,您的“/”路径连接到 UrlMappings 中的某个控制器,在该控制器中应该有static defaultAction = "list"可能指向将处理您的“/”路径的方法,或者如果没有设置 defaultAction,那么它将是index(){...}方法。因此,负责“/”路径的方法不会传递secUserInstance给您的“methodName”.gsp 文件,这就是您无法获取它的原因。在/secUser/show/1您访问secUserController show具有[secUserInstance : secUserInstance]或类似的方法并将该对象传递给gsp文件时。您可以secUserInstance使用过滤器链接添加对每个页面的可访问性:将登录用户添加到所有 GSP 页面的上下文中, 或者只是在您负责的方法中传递该用户对象“/”

于 2013-07-12T16:31:31.603 回答