如何解决Grails控制器传递参数
| 我的控制者如下:def participated = {
def temp = ConferenceUser.get(params.temp)
def prizes = Prizes.findAllByConferenceUser(temp) // find all rooms where current computer is
def subms = Submissions.findAllByConferenceUser(temp) // find all rooms where current computer is
[temp: temp,priz: prizes,subm: subms]
}
但是不知何故,当我成功更新会议值时,我想返回初始页面(已参与),但是我不知道如何传回params.temp
。 (如果我做一个简单的重定向,因为控制器期望值是params.temp
,它将给我一个错误,因为我无法搜索以空对象为参数的奖品。因此,想象一下我的更新控制器如下:
def update = {
def saveParamshere = params.temp
...
...
(code here)
...
...
redirect(action: \"participated\",params: [temp: saveParamshere])
}
该代码无效。如何成功返回首页并传递pass1ѭ?
解决方法
我认为问题可能在于,您通过提交表单来调用“ 5”行动(我想)。也许您没有通过该表格传递6英镑的价值?您可以通过将“ 6”作为隐藏的输入字段嵌入到表单中来执行此操作,也可以通过在表单标签上的“ 8”属性将其应用于url。
使用隐藏字段可能是这样的(在您的视图文件中):
<g:form controller=\"somecontroller\" action=\"update\">
(...)
<g:hiddenField name=\"temp\" value=\"${temp}\" />
(...)
</g:form>
使用“ 10”属性:
<g:form controller=\"somecontroller\" action=\"update\" params=\"[temp : temp]\">
(...)
</g:form>
我没有测试任何一个,所以可能会有一些问题,特别是在第二种方法中。
,您可以将参数放入Flash范围(可容纳两个请求)中,也可以将它们放入会话中并以这种方式检索它们。
这是有关flash范围用法的grails文档的链接:
Grails-控制器-控制器范围
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。