一些背景信息:
我现在正在使用简单的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所说的'自然模板')。
答案 0 :(得分:1)
如果你想支持不同的CSS-Framework,我认为你必须为每个框架编写自己的html。如果您使用Spring MVC,Custom-ViewResolver可以找到正确的模板。
对于主题,我会使用强大的命名约定,如main-boostrap2-ibm.css。所以你知道主题boostrap2-ibm使用bootstrap并且可以在thymeleaf main-${themename}.css
中引用。