我的 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/