问题 Spring MVC Web应用程序中的模板


我在我的Web应用程序设计中有很多常见的区域,例如页脚,标题侧边栏,块等等,并且通过所有应用程序JSP文件来更改某些内容,例如在标题中非常繁忙所以我想知道是否我可以为公共区域制作模板文件,例如标题模板,侧边栏模板,页脚模板,然后我可以在我的应用程序内的任何JSP中包含这些模板吗?

我正在使用Spring MVC框架来构建我的应用程序


5347
2017-10-13 15:58


起源

看看Apache Tiles: tiles.apache.org/framework/index.html - Jk1
@ Jk1非常感谢,看起来很棒但我正在寻找一些比较简单的实现方法。换句话说,如何在没有任何额外框架的情况下直接在应用程序中应用它,您认为这是可能的吗? - MChan
事实上,有一种更简单的方法。在自定义JSP标记中封装页眉/页脚内容。不需要额外的框架/库。这是手册: docs.oracle.com/javaee/5/tutorial/doc/bnama.html - Jk1
@ Jk1最后一个问题,如果你不介意的话,假设我想要先进入模板并且我的应用程序可以支持多个主题,这些主题可以由应用程序管理员轻松更改,我该怎么做? Apache Tile会帮助我完成这项任务吗?这样的任务还有其他更好的框架吗?谢谢你的时间 - MChan
Spring MVC内置了自定义主题支持,所以只需使用它: javabeat.net/2013/05/spring-themes。 - Jk1


答案:


至于模板,你有以下选择:

  1. 自定义JSP标记。这些标记可以作为Java类或JSP片段存在,并提供封装和重用JSP页面部分(页眉,页脚等)的基本工具。查看更多 这本手册

  2. 模板引擎就好 瓷砖 或装饰者喜欢 SiteMesh的。它们在构建复杂的页面布局方面非常强大。

如果您正在寻找自定义UI主题支持,请查看 自定义主题支持 在Spring MVC中。


11
2017-10-14 09:57



Sitemesh不是模板引擎。这是一个装饰。 - Bart
谢谢,@巴特,正式你是对的。 - Jk1


我使用过Apache Tiles。它可以很容易地与Spring MVC集成。您也可以考虑使用sitemesh。正如您所提到的标题模板,页脚模板,您可以拥有基本模板 页眉,页脚,菜单,您可以将它们集成到基本模板中,

注意:这里只能有jsp而不是html。

检查此链接是否有瓷砖弹簧。

http://www.springbyexample.org/examples/dynamic-tiles-spring-mvc-module.html


3
2017-10-13 17:09



在使用sitemash搜索stackoverflow中的tile和sitemash的某些比较之前。例如 stackoverflow.com/questions/8565029/apache-tiles-alternatives - Ralph


如果你想从“真实”内容中分离页眉,页脚和其他一些常见的东西,那么你可以使用 Apache Tiles

它很容易在春天集成。所以例如Spring Roo使用它。


1
2017-10-13 16:58





理想情况下,您需要创建公共文件而不是冗余代码,因为如果您想要更改单个内容,可能会导致许多更改。因此,请尝试根据您的要求使用以下代码。

<%@ include is a static include, <jsp:include is a dynamic include. 

另一个解决方案:当你使用Spring框架时,尝试在谷歌中使用spring tiles搜索以获得更多帮助 SpringByExample


0
2017-10-13 16:15