2013-04-29 64 views
3

我在resources.groovy中定义了Spring bean。 而且我可以在控制器中访问它们。 我也有一些没有控制器的视图中的GSP。 我想知道如何在GSP中访问bean,就像JSF中的EL表达式一样?在没有控制器的情况下在GSP中访问Spring beans

例如,给定一个域类这样的:

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。谢谢!

回答

4

您也可以与您的bean创建变量值:

<g:set var="testBean" bean="test"/> 

,然后使用(在你的* .gsp):

${testBean.name} 

这比创建自定义TagLib快一点。

4

你可以创建一个TagLib到那个工作,只需要在你的gsp中调用。

的taglib

class MyTagLib { 
    static namespace = "my" 

    def test 

    def myTag = { attrs, body -> 
    out << test.name 
    } 

} 

<my:myTag /> 
相关问题