javascript - 如何在 JavaScript 中访问 Grails 变量?

标签 javascript grails

我的 Grails 应用程序的 BootStrap.groovy 中有一个变量:

      class BootStrap {
      def init = { servletContext ->
      def testGrails = "11"

如果此测试值为 11,我想显示一个 JavaScript alert()

我的 JavaScript:

           <SCRIPT LANGUAGE="JavaScript">
           if(testGrails==11)   // WHAT TO WRITE WITH IN THE BRACKETS ...?
           {
               alert("yes");
           }        

如何访问 Javascript 中的 Grails 类来执行上述操作?

谢谢。

最佳答案

首先 - 你必须让这个变量可以从其他地方访问。目前它被限制在 init 范围内。例如,您可以将其放入全局配置中(参见 Config.groovy)。或者设置为服务。或者在某处创建一个 public static 变量。

服务示例:

class VariableHOlderService {

    def testGrails

}

class BootStrap {

      VariableHolderService variableHolderService

      def init = { servletContext ->
          VariableHolderService.testGrails = "11"
}

其次 - 您需要将其放入请求中。有两种方法——使用过滤器或 Controller / Action 。当您想使用来自不同 GSP 的相同变量时,第一个选项很有用。

从 Controller 将是:

VariableHolderService variableHolderService

def myAction = {
    render model: [testGrails:variableHolderService.testGrails]
}

并在 GSP 中用作

<g:javascript>
       if(${testGrails}==11)   
       {
           alert("yes");
       }    
</g:javascript>

关于javascript - 如何在 JavaScript 中访问 Grails 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182054/

相关文章:

javascript - Chrome 无法像 Firefox、Safari 一样处理分块响应

javascript - 学生成绩数组,平均函数未实现

grails - Grails升级-Java 1.8兼容性从1.3.7到2.4.1。如何在类路径中添加自定义jar

Grails、Tomcat 7、REST 客户端和 UTF-8 字符编码

javascript - 为什么全局定义的变量是未定义的?

javascript - 在背景上播放音乐/声音的方法

java - Roo 或 Grails(同一公司,类似产品)

jquery - 从gsp中的 Controller 传递的对象列表中获取特定元素

spring - Grails Spring Security Rest-禁止的403

javascript - 函数具有不一致的返回点