我在resources.groovy中定义了Spring bean。我可以在控制器中访问它们。我也有一些gsp视图没有控制器。我想知道如何在gsp中访问bean,就像JSF中的EL表达式一样?
例如,给定这样的域类:
class TestBean {
def name = "hello"
}
在春/resources.groovy :
test(mydomain.TestBean) { bean -> bean.scope = 'session' }
在UrlMapping.groovy: '/test'(view:'/test')
然后,在views/test.gsp:
${test.name}
但是上面的代码会抛出异常,因为${test}是空的。那么,我如何在没有控制器的GSP中访问TestBean呢?
我正在使用Grails 2.2。谢谢!
您还可以用bean作为值创建变量:
<g:set var="testBean" bean="test"/>
,然后使用(在你的*.gsp):
${testBean.name}
这比创建自定义TagLib
要快一些。
您可以创建一个TagLib
来执行该任务,并且只需调用您的gsp。
TagLib
class MyTagLib {
static namespace = "my"
def test
def myTag = { attrs, body ->
out << test.name
}
}
的
<my:myTag />