我正在考虑使用Spring MVC来渲染Groovy's MarkupTemplateEngine(在Java中)中的项目(使用Java)。我是Groovy的新手。
问题:创建可重复使用的视图元素的 Groovy Way 是什么?
示例 :(语法可能有所不同)
个人资料图片
profilePicture(someuser)
-> <img src="/users/profilepics/42" alt="John Doe">
FontAwesome
fa('foo')
-> <i class="fa fa-foo"></i>
Portlet(例如Bootstrap)
portlet(...) { ... }
->
<div class="portlet">
<div class="portlet-header">Some title</div>
<div class="portlet-body">Lots of content</div>
</div>
我选择了三个示例,因为我觉得每个示例都有不同的答案。
到目前为止我发现的东西:
我知道我可以包括其他模板。这可能是3的解决方案,但对于1和2来说却显得过分杀伤。
我也知道我可以扩展视图的基类并引入新的方法。我看到了一个以这种方式添加FontAwesome支持的示例。但是,我想将项目特定的(1)与更通用,可重用的(2)方法分开。另外,我更希望将它们命名为某种名称空间(例如Users.profilePicture(...)
和Bootstrap.portlet(...)
)
我可以将类与静态方法一起使用。这会引起任何问题吗?我想我无法访问会话,对吧? (例如,链接到1中的个人资料,但仅当someuser!=经过身份验证的用户时使用。)
我可以将辅助程序类的实例添加到模型中。但是,该控制器在视图中应该基本上忽略了特定的帮助程序要求。
还是我完全错过了重点,而 Groovy Way 就是将这些元素明确地写出来?