我在resources.groovy中定义了Spring bean。 我可以在控制器中访问它们。 我在视图中也有一些没有控制器的GSP。 我想知道如何像在JSF中的EL表达式一样访问GSP中的bean?
例如,给定这样的域类:
class TestBean {
def name = "hello"
}
在spring / resources.groovy:
test(mydomain.TestBean) { bean -> bean.scope = 'session' }
在UrlMapping.groovy中:
'/test'(view:'/test')
然后,在views / test.gsp中:
${test.name}
但是上面的代码会引发异常,因为$ {test}为null。那么,如何在没有控制器的情况下在GSP中访问TestBean?
我正在使用Grails 2.2。谢谢!
答案 0 :(得分:5)
您还可以使用bean创建变量值:
<g:set var="testBean" bean="test"/>
然后使用(在* .gsp中):
${testBean.name}
比创建自定义TagLib
要快一些。
答案 1 :(得分:4)
您可以为该作业创建TagLib
,只需拨打您的gsp。
TagLib
class MyTagLib {
static namespace = "my"
def test
def myTag = { attrs, body ->
out << test.name
}
}
视图
<my:myTag />