我在现有的Tiles配置中找到了这个。 Tiles与SpringMVC一起使用。 有人可以解释这是做什么的吗?
基本上它拦截了对page.*
形式的所有视图的请求,并显示静态jsp页面。我怎么弄清楚是怎么回事? {1}
做了什么?它只是替换*
所代表的内容吗?
如果我想显示一个名为about.jsp
的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文档中弄清楚它但是它不清楚是什么时候发生并且我不想破解,除非我知道我在做什么,因为我可能不会能够恢复原始代码。
答案 0 :(得分:2)
{1}
被通配符值替换
例如
page.FOO
,{1}
被FOO
因此,如果某个操作将用户发送到page.FOO
titleKey
会解析为属性文件中的title.FOO
。