1

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

基本上,它拦截对表单所有视图的请求page.*并显示一个静态 jsp 页面。我不知道是怎么回事?做什么{1}?它只是替换由 代表的内容*吗?

如果我想显示一个名为 jspabout.jsp的控制器应该请求什么视图?page.about.jsp还是page.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 文档中找出答案,但目前尚不清楚发生了什么,除非我知道自己在做什么,否则我不想破解,因为我可能无法恢复到原始代码。

4

1 回答 1

2

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

因此,如果一个操作将用户发送到page.FOO titleKey将解析为title.FOO属性文件中的任何内容。

于 2011-09-17T20:50:30.300 回答