首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Apache Tiles的更好替代方案

Apache Tiles的更好替代方案
EN

Stack Overflow用户
提问于 2012-03-17 16:33:39
回答 5查看 18.7K关注 0票数 17

我正在寻找一个比Apache Tiles更好、更容易使用的框架(到目前为止,我已经用过几次了)。

使用Tiles,似乎当我有100个操作时,我需要在tiles.xml中创建100个jsp文件和100个定义。

有没有更好的框架来管理我的模板?例如,我想创建两个模板:

a)内容的菜单和栏

b)菜单、内容栏、带有横幅的右栏

在这两个模板中,菜单都是恒定的。在template b中,右边的列是常量,所以只有内容列是不同的。对于这个简单的示例,我不想定义每个扩展template a文件(只是为了提供一个主体)。这太差劲了。或者,也许我很差劲,我可以在Apache Tiles中定义一个默认模板,但我没有正确使用它。在任何情况下,感谢所有的帮助。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-23 21:24:42

我最终使用了JSF + Facelets。我将它们与Spring MVC结合在一起,它就像一个魔法师。

票数 5
EN

Stack Overflow用户

发布于 2014-06-25 04:29:03

总的来说,我会推荐SiteMesh而不是Tiles。

Here's如何设置SiteMesh 3

您可以对页面内模板使用磁贴,但对站点范围的模板使用SiteMesh。然而..。

如何让瓷砖看起来不那么糟糕:

  1. 使用约定而不是配置。例如,将定义放在webapp/WEB-INF/tiles.xml中,无需告知切片的位置。
  2. 使用通配符:

代码语言:javascript
复制
<definition name="default" template="/WEB-INF/templates/default.jsp">
    <put-attribute name="titleKey" value=""/>
    <put-attribute name="body" value=""/>
</definition>

<definition name="*" extends="default">
    <put-attribute name="titleKey" value="{1}.title"/>
    <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
</definition>

如果您的控制器返回视图名称index,它将匹配定义*,并使用JSP文件/WEB-INF/views/index.jsp作为正文,并使用消息属性index.title

如果您的控制器返回视图名称contact-us,它将匹配定义*,并使用JSP文件/WEB-INF/views/contact-us.jsp作为正文,并使用消息属性contact-us.title

在模板中,添加:

代码语言:javascript
复制
<c:set var="titleKey"><tiles:getAsString name="titleKey" /></c:set>

代码语言:javascript
复制
<title><spring:message code="${titleKey}"/></title>

将servlet bean添加到ReloadableResourceBundleMessageSource应用程序上下文中。

创建一个/src/main/resources/messages.properties文件,内容如下:

代码语言:javascript
复制
index.title = Welcome to Acme, Inc.
contact-us.title = Contact Us
票数 15
EN

Stack Overflow用户

发布于 2012-03-17 18:54:39

另一种方法是Sitemesh。它被设计成网格视图,在那里你不能修改原始视图,所以它更像是一个html转换/装饰框架,而不是一个像Tiles这样的模板框架。

在我个人看来,Tiles是更好的应用程序方法,我会尝试实现某种解析器(基于一些命名约定),使xml文件过时,但这不是问题所在。

@See:This old introductions展示了SiteMesh是如何工作的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9748481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档