我的Grails应用程序中有一个变量BootStrap.groovy:
class BootStrap {
def init = { servletContext ->
def testGrails = "11"
Run Code Online (Sandbox Code Playgroud)
alert()如果此测试值为11,我想显示JavaScript .
我的JavaScript:
<SCRIPT LANGUAGE="JavaScript">
if(testGrails==11) // WHAT TO WRITE WITH IN THE BRACKETS ...?
{
alert("yes");
}
Run Code Online (Sandbox Code Playgroud)
如何在Javascript中访问Grails类来执行上述操作?
谢谢.
Igo*_*nov 10
首先 - 你必须从其他地方访问这个变量.目前它的init范围有限.例如,您可以将其置于全局配置中(请参阅参考资料Config.groovy).或设置为服务.或者在public static某个地方做一个变量.
服务示例:
class VariableHOlderService {
def testGrails
}
Run Code Online (Sandbox Code Playgroud)
和
class BootStrap {
VariableHolderService variableHolderService
def init = { servletContext ->
VariableHolderService.testGrails = "11"
}
Run Code Online (Sandbox Code Playgroud)
第二 - 你需要把它提出来.有两种方法 - 使用过滤器或控制器/动作.当您想要使用来自不同GSP的相同变量时,第一个选项很有用.
从控制器它将是:
VariableHolderService variableHolderService
def myAction = {
render model: [testGrails:variableHolderService.testGrails]
}
Run Code Online (Sandbox Code Playgroud)
并在GSP上使用它
<g:javascript>
if(${testGrails}==11)
{
alert("yes");
}
</g:javascript>
Run Code Online (Sandbox Code Playgroud)