Grails控制器语法修正

Vic*_*tin 1 grails controllers

我的控制器里有这样的东西:

class houseController = {

...
code
...

if(params.answer == null)
redirect(action:'xxx')

...
code
...

}
Run Code Online (Sandbox Code Playgroud)

我的疑问是,控制器中间的重定向.由于不在控制器的末端,它是否需要任何"返回"或类似的东西?或者,重定向完成后,之后的所有代码都被忘记了,而不是保存在内存中?我的观点,我不想用糟糕的代码浪费无用的资源.

Dón*_*nal 5

redirect将执行之后发生的任何代码,但如果您在执行重定向后尝试写入响应,则会出现异常.

实际上,在执行之后,您通常不希望在当前操作中执行任何操作redirect,因此我将上面的代码重写为:

if (params.answer == null)
  redirect(action:'xxx')
  return
}

...
code
---
Run Code Online (Sandbox Code Playgroud)

或者:

if (params.answer == null)
  redirect(action:'xxx')

} else {
  ...
  code
  ---
}
Run Code Online (Sandbox Code Playgroud)