基于JSP的Spring模板化

时间:2008-12-20 22:25:22

标签: spring jsp model-view-controller spring-mvc jsp-tags

我正在使用Spring的MVC和JSP视图。每个JSP页面都有类似的结构 - 标题,内容,页脚,也许是侧边栏等。围绕“最佳实践”,人们似乎“包含”页脚和标题,但这意味着每个JSP页面都包含这些“包含”语句,给出一个固定的格式。在我看来,更好的解决方案将涉及嵌套视图,其中基本模板使用适合于相关页面的信息进行扩展。此方法的一个优点是您可以在基本模板中假定默认值,而无需在其他地方重复它们。另一个优点是你可以在包含大量文本的页面中进一步分离结构和内容(“标题”和“页脚”是结构的,因此属于基本模板)(想想帮助页面 - 你可以将所有这些放入数据库,但为什么这么麻烦,特别是因为使用Spring,你可以通过语言环境解析不同的视图?)。

在Spring的MVC级别似乎没有任何支持,但它可以使用自定义标记在JSP中实现,实际上,有一个相当笨重的尝试here(这可能解释了什么我想要比这个问题更好,虽然我认为你可以减少干扰。

无论如何,我的问题是 - 这是否已作为(流行/标准)标签库存在?我很高兴写自定义标签,但我对这些东西(生成网站)的印象是,已经有大量的解决方案,大多数工作都在选择正确的工具(例如Spring)。感谢。

4 个答案:

答案 0 :(得分:6)

我建议SiteMesh。它适用于Spring。

答案 1 :(得分:3)

我可能无法在此处了解全貌,但您可能还想看看apache tiles

我个人更喜欢避免添加新框架的复杂性,所以我坚持使用tag files

答案 2 :(得分:2)

如果你不依赖于Spring MVC,我建议使用Apache Wicket,因为它允许你正在描述的行为类型。它还与Spring for IoC很好地集成。

Wicket's markup inheritance

答案 3 :(得分:1)

我建议Apache Tiles

我使用SiteMesh和Tiles完成了这项工作。但我相信Tiles对于这项工作比SiteMesh更好。 - 在MHO中,SiteMesh的目标更多是操纵现有网页。