如何为应用程序范围设置变量,即仅为grails控制器中的整个应用程序设置1

时间:2011-07-20 06:16:56

标签: grails controller gsp

我想为整个应用程序设置一个变量,并且我想在请求进入特定操作时更新它

喜欢

def action = {
    // some integer variable is already set in application scope with name variable
    variable++
    render(view:"action", model:[variable])
}

在Gsp中

<html>
    <body>
        Variable is ${variable}
    </body>
</html>

输出为

变量是1
//在后续请求中 变量是2 等等....

由于

2 个答案:

答案 0 :(得分:1)

是否需要整个应用程序中的一个?

通过使用(单例)服务可以处理您的价值,例如:

class VariableService {
   int value

   synchronized int get() {
      return value
   }

   synchronized int inc(int value) {
      this.value += value
      return this.value   
   }

   synchronized void set(int value) {
      this.value = value
   }
}

并在需要的地方使用

答案 1 :(得分:1)

对于这个用例,有一些机会:

不要在每个控制器操作中增加'global'var,而是使用过滤器。