在没有控制器的GSP中访问Spring bean



我在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 />

相关内容

  • 没有找到相关文章

最新更新