Grails控制器传递参数

Vic*_*tin 4 grails controllers params

我的控制器如下:

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]
}
Run Code Online (Sandbox Code Playgroud)

但不知何故,当我成功更新会议价值时,我想回到初始页面(参与),但我不知道如何传回params.temp.(如果我做一个简单的重定向,正如控制器所期望的那样params.temp,它会给我一个错误,因为我无法使用null对象作为参数搜索奖品.所以,想象一下我的更新控制器如下:

def update = {
  def saveParamshere = params.temp
  ...
  ...
  (code here)
  ...
  ...

  redirect(action: "participated", params: [temp: saveParamshere])
}
Run Code Online (Sandbox Code Playgroud)

此代码无效.如何成功返回主页并传入params.temp

jjc*_*pek 7

我认为问题可能是,你update通过提交表格来调用行动(我想).也许你没有temp从那个形式传递价值?您可以通过将temp隐藏的输入字段嵌入到表单中,或者通过param表单标记上的属性将其应用于url来实现.

使用隐藏字段可能是这样的(在您的视图文件中):

<g:form controller="somecontroller" action="update">
  (...)
  <g:hiddenField name="temp" value="${temp}" />
  (...)
</g:form>
Run Code Online (Sandbox Code Playgroud)

使用params属性:

<g:form controller="somecontroller" action="update" params="[temp : temp]">
  (...)
</g:form>
Run Code Online (Sandbox Code Playgroud)

我没有测试任何这些因此可能存在一些问题,特别是在第二种方法中.