Pav*_*vel 10 spring localization tiles internationalization
我有一个Spring应用程序,它使用Tiles作为视图层.所以我的所有页面定义都是这样的:
<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=""/>
<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>
Run Code Online (Sandbox Code Playgroud)
设置页面标题的代码是:
<title><tiles:getAsString name="title"/></title>
Run Code Online (Sandbox Code Playgroud)
我想用Spring标签进行本地化:
<spring:message>
Run Code Online (Sandbox Code Playgroud)
有没有"最佳实践"如何做到这一点?
Ral*_*lph 18
您是否曾尝试将消息键放在tile变量中并将其用作spring消息标记的键.
像这样的东西:
<definition name="welcome.page" extends="main.page">
<put-attribute name="titleKey" value="page.main.title"/>
<put-attribute name="body" value="/pages/welcome.jsp"/>
</definition>
Run Code Online (Sandbox Code Playgroud)
JSP:
<set var"titleKey"><tiles:getAsString name="titleKey"/></set>
<title><spring:message code=${titleKey} /></title>
Run Code Online (Sandbox Code Playgroud)
小智 6
前面的答案包含几个小错误
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>
Run Code Online (Sandbox Code Playgroud)
jsp(/WEB-INF/jsp/template.jsp)
<c:set var="titleKey"><tiles:getAsString name="titleKey"/></c:set>
<title><spring:message code="${titleKey}"></spring:message> </title>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3722 次 |
| 最近记录: |