Я нашел это в существующей конфигурации Tiles. Плитка используется с SpringMVC.
Может кто-нибудь объяснить, что это делает?
В основном он перехватывает запросы для всех представлений формы page.*
и отображает статическую страницу JSP. Что я не могу понять, это как? Что делает {1}
? Он просто заменяет содержимое, представленное *
?
Если я хочу отобразить jsp с именем about.jsp
, какой вид должен запрашивать контроллер? page.about.jsp
или page.about
?
Кроме того, на что указывает layout.page.{1}
? Я не могу найти папку layout
в папке jsp.
<!-- 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, но просто не ясно, что происходит, и я не хочу взламывать, если я не знаю, что я делаю, потому что я, возможно, не буду возможность вернуться к исходному коду.