开发者

How to localize page title with Spring and Tiles2?

I have a Spring application which uses Tiles for the view tier. So all my pages definitions look like this:

<definition name="main.page" template="/tiles/layout.jsp">
    <put-attribute name="title" value="Page Title"/>
    <put-attribute name="header" value="/tiles/header.jsp"/>
    <put-attribute name="body" value=""/&g开发者_高级运维t;
    <put-attribute name="footer" value="/tiles/footer.jsp"/>
</definition>

<definition name="welcome.page" extends="main.page">
    <put-attribute name="title" value="Main Page"/>
    <put-attribute name="body" value="/pages/welcome.jsp"/>
</definition>

The code which sets page title is:

<title><tiles:getAsString name="title"/></title>

I would like to localize with Spring tag:

<spring:message>

Are there any "best practices" how to do that?


Did you ever tried to put the message key in you tiles variable and use it as key for the spring message tag.

Something like that:

<definition name="welcome.page" extends="main.page">
    <put-attribute name="titleKey" value="page.main.title"/>
    <put-attribute name="body" value="/pages/welcome.jsp"/>
</definition>

jsp:

<set var"titleKey"><tiles:getAsString name="titleKey"/></set>
<title><spring:message code=${titleKey} /></title>


The previous answer contains several little mistakes

tiles.xml

<definition name="main" template="/WEB-INF/jsp/template.jsp">
        <put-attribute name="titleKey" value="main.title" />
    <put-attribute name="body" value="/WEB-INF/jsp/main.jsp" />
</definition>

jsp (/WEB-INF/jsp/template.jsp)

<c:set var="titleKey"><tiles:getAsString name="titleKey"/></c:set>
<title><spring:message code="${titleKey}"></spring:message> </title>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜