2013-04-29 65 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 /> 
相關問題