如果我想在一个 Controller 的多个方法之间共享一个对象,那么创建实例var是否错误?例如。
class MyController {
def index() {
def user = verifyUserLogin()
[messages:getMessages(user)]
}
private verifyUserLogin() {
...
return user
}
private getMessages(user) {
...do something with `user`...
return messages
}
}
会成为
class MyController {
private user
def index() {
verifyUserLogin()
[messages:getMessages()]
}
private void verifyUserLogin() {
...
this.user = user
return
}
private getMessages() {
...do something with `user`...
return messages
}
}
最佳答案
Grails Controller 并不是为每个请求创建的,因此没有实例级变量是没有问题的。
但是,我个人不希望尽可能不声明实例级别的变量,因为当代码开始变得冗长时,很难弄清初始化和使用变量的代码流程。
我宁愿选择将它们作为参数传递。但是,没有这样的经验法则,它在很大程度上取决于当前的问题。
关于grails - 将实例变量添加到Controller是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17833113/