我需要在我正在构建的网站的页脚中创建一个顶部列表。页脚是在默认的 SiteMesh 布局模板 (views/layouts/main.gsp
) 中创建的。
为了创建顶部列表,需要访问数据库,因此我将创建顶部列表所需的所有逻辑封装在服务类 (services/FooService
) 中。
请注意,虽然服务通常是从 Controller 层访问的,但在这种情况下,默认布局模板(views/layouts/main.gsp
)不是从一个 Controller 。
- 布局 View (
views/layouts/main.gsp
) 可以访问服务类吗?怎么办? - 这是正确的设计决策吗?如果没有,什么是更好的封装以及如何从布局 View (
views/layouts/main.gsp
)与所述封装进行交互?
最佳答案
我建议创建一个标签库( documented here )来包装页脚的渲染。您只需声明一个同名字段即可将您的服务注入(inject)到标签库类中。
然后从服务中获取您需要的内容,直接输出 html,或者更好地创建 _footer.gsp
和 render it使用渲染模板:'footer',模型:[yourmodel: model]
。
关于grails - 我如何(或者应该?)从 Grails 中的 SiteMesh 模板 (views/layouts/main.gsp) 访问服务层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699259/