我如何(或者应该?)从 Grails 中的 SiteMesh 模板 (views/layouts/main.gsp) 访问服务层?

2024-05-24

我需要在我正在构建的网站的页脚中创建一个顶部列表。页脚是在默认的 SiteMesh 布局模板中创建的 (views/layouts/main.gsp).

为了创建顶部列表,需要访问数据库,因此我将创建顶部列表所需的所有逻辑封装在服务类中(services/FooService).

请注意,虽然服务通常是从控制器层访问的,但在这种情况下,默认布局模板(views/layouts/main.gsp) is not从控制器生成。

  • 可以布局视图(views/layouts/main.gsp) 访问服务类?如何?
  • 这是正确的设计决策吗?如果没有,什么是更好的封装以及如何从布局视图与所述封装进行交互(views/layouts/main.gsp)?

我建议创建一个标签库(记录在这里 http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.3%20Tag%20Libraries) 来包装页脚的渲染。您只需声明一个具有相同名称的字段即可将您的服务注入到标签库类中。

然后从服务中获取您需要的内容并直接输出 html 或更好地创建一个_footer.gsp and 渲染它 http://grails.org/doc/latest/ref/Controllers/render.html with render template: 'footer', model: [yourmodel: model].

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何(或者应该?)从 Grails 中的 SiteMesh 模板 (views/layouts/main.gsp) 访问服务层? 的相关文章

随机推荐