Java / Spring中更复杂的模板/主题

时间:2014-02-17 20:10:30

标签: spring-mvc velocity template-engine mustache thymeleaf

一些背景信息:

  

我现在正在使用简单的Spring Theming。弹簧控制器代码   拉出相应的视图,例如:WEB-INF / view / properView.jsp。该   视图都具有与设计.css文件类相同的基本html   可以主题。视图通过spring设置设计文件:主题代码如   so:< link rel =“stylesheet”type =“text / css”href =“< spring:theme   code =“css.layout_style_sheet”/>“/>   WEB-INF / classes / theme-theTheme.properties文件将定义什么是css   要通过的文件:css.layout_style_sheet = theme960 / 960.css。

     

对于基于相同CSS的主题而言,这一切都很精致和花花公子   框架(如960框架使用960.css,1024.css,800.css等)和   html看起来完全相同减去1个不同的css文件。但现在   我们想使用Twitter Bootstrap或Zurb Foundation或960等   properView.jsp,TwitterBoostrap将要使用不同的js   要包含的文件以使用其框架与基础。还有html内容   因为他们使用不同的html数据属性标签,所以会有所不同   让它的框架知道如何在视觉上呈现内容以及标记   也可能完全不同:< div class =“navbar”>< div   class =“navbar-inner”> ... vs< nav class =“tab-bar”> <节   类= “左小” > ...

     

我最好的想法是为每个主要的css框架提供不同的文件   properView-twitter.jsp和properView-foundation.jsp以及   弹簧控制器代码拉适当的一个。在里面   文件,然后每个框架可能有不同的'包括'(猜测   可以只传递一个变量来实现它   日期选择器 - $ {} cssfrawework .JSP)。比如datepicker-twitter.jsp,   datepicker-foundation.jsp和radiobuttongroup-twitter.jsp,   RadioButtonGroup中,foundation.jsp。也许设计想要添加不同数量的css / js-plugin文件以及基本cssframework模板所包含的文件。

我现在的问题是,是否有更好的方法通过更高级的java主题/模板引擎(如Velocity,SiteMesh,Mustache,ThymeLeaf等)来完成这样的主题。这是我的想法吗?如果是这样,网上的任何示例都会显示这样的高级主题系统? 如果设计师可以通过他们选择的Designer IDE处理这些文件会很棒(猜猜这是ThymeLeaf所说的'自然模板')。

1 个答案:

答案 0 :(得分:1)

如果你想支持不同的CSS-Framework,我认为你必须为每个框架编写自己的html。如果您使用Spring MVC,Custom-ViewResolver可以找到正确的模板。 对于主题,我会使用强大的命名约定,如main-boostrap2-ibm.css。所以你知道主题boostrap2-ibm使用bootstrap并且可以在thymeleaf main-${themename}.css中引用。