瓷砖定义说明。做什么。*和{1}呢?

时间:2011-09-15 10:37:21

标签: java spring-mvc tiles2 apache-tiles

我在现有的Tiles配置中找到了这个。 Tiles与SpringMVC一起使用。 有人可以解释这是做什么的吗?

基本上它拦截了对page.*形式的所有视图的请求,并显示静态jsp页面。我怎么弄清楚是怎么回事? {1}做了什么?它只是替换*所代表的内容吗?

如果我想显示一个名为about.jsp的jsp,控制器应该请求什么视图? page.about.jsppage.about

另外,layout.page.{1}指向的是什么?我在jsp文件夹下找不到layout文件夹。

<!-- Static pages -->
<definition name="page.*" extends="layout.main">
    <put-attribute name="titleKey" value="title.{1}"/>
    <put-attribute name="body" value="layout.page.{1}"/>
</definition>

布局定义如下:

<definition name="layout.main" template="/WEB-INF/templates/mainLayout.jsp"
            preparer="com.company.modules.web.tiles.ABTestViewPreparer">
    <put-attribute name="titleKey" value="Company Archetypical Webapp"/>
    <put-attribute name="backToResults" value="" />
    <put-attribute name="metaDesc" value="meta.description"/>
    <put-attribute name="metaKeywords" value="meta.keywords"/>
    <put-attribute name="header" value="/WEB-INF/templates/header.jsp"/>
    <put-attribute name="searchBar" value="/WEB-INF/templates/blank.jsp"/>
    <put-attribute name="nav" value="/WEB-INF/templates/blank.jsp"/>
    <put-attribute name="ads" value="/WEB-INF/templates/blank.jsp"/>
    <put-attribute name="body" value="/WEB-INF/templates/blank.jsp" />
    <put-attribute name="footer" value="/WEB-INF/templates/footer.jsp"/>
</definition>

任何帮助都表示赞赏,我正试图从Tiles文档中弄清楚它但是它不清楚是什么时候发生并且我不想破解,除非我知道我在做什么,因为我可能不会能够恢复原始代码。

1 个答案:

答案 0 :(得分:2)

{1}被通配符值替换 例如 page.FOO{1}FOO

取代

因此,如果某个操作将用户发送到page.FOO titleKey会解析为属性文件中的title.FOO