想象一下,您的 grails 应用程序的布局页面有一些动态内容,这些内容会在每个页面请求时更新。当一个页面被请求时,被请求的控制器与main.gsp页面提供的动态数据无关。我应该如何管理这个?
我的意思是当请求页面时,如何更新页面控制器不知道的布局部分的动态部分?另外我不想把布局动态代码放在每个控制器上。
想象一下,您的 grails 应用程序的布局页面有一些动态内容,这些内容会在每个页面请求时更新。当一个页面被请求时,被请求的控制器与main.gsp页面提供的动态数据无关。我应该如何管理这个?
我的意思是当请求页面时,如何更新页面控制器不知道的布局部分的动态部分?另外我不想把布局动态代码放在每个控制器上。
您也许可以为此创建一个TagLib。
grails create-tag-lib myLayout
然后让你的 taglib 负责远程服务调用。您几乎可以在 taglib 中做任何您可以在控制器中做的事情,您还可以调用您已经创建的任何 Grails 服务。
class MyLayoutTagLib {
static namespace = "myLayout"
def stockQuoteService
def getStockPrice = { attrs ->
out << stockQuoteService.getLatestPrice(attrs.stockSymbol)
}
}
然后在你的 gsp
<myLayout:getStockPrice stockSymbol="${user.favoriteStockSymbol}" />
或者,您可以获取相关数据来进行远程服务调用。