Ali*_*Ali 12 java apache spring tiles
我有一个使用Spring 3,Apache Tiles 2和Maven的项目设置.在我实现Tiles之前,我使用messages.properties文件来动态填充网页的标题(head和title标签之间出现的部分).这样做的原因是为了允许未来的本地化.但是,由于我已经集成了tile,所以tiles.xml文件似乎可以控制我页面的标题.
有没有办法改变这个,所以页面标题来自我用作页面主体的每个jsp的messages.properties?
tiles.xml是:
<definition name="base.definition" template="/WEB-INF/views/layouts/layout.jsp">
<put-attribute name="title" value="" />
<put-attribute name="header" value="/WEB-INF/views/includes/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/views/includes/menu.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/views/includes/footer.jsp" />
</definition>
<definition name="home" extends="base.definition">
<put-attribute name="title" value="Welcome from Tile" />
<put-attribute name="body" value="/WEB-INF/views/home.jsp" />
</definition>
<definition name="new-deal-input" extends="base.definition">
<put-attribute name="title" value="New Deal" />
<put-attribute name="body" value="/WEB-INF/views/new-deal-input.jsp" />
</definition>
Run Code Online (Sandbox Code Playgroud)
如果您看到"欢迎来自平铺"或"新政"作为标题,我希望此消息来自messages.properties.我已经尝试将消息放在"正文"页面上的标题标签中无济于事.
该项目是在GitHub上设置的,您可以查看以下URL:Group-Deal-Clone
Dim*_*ima 18
另一个变体,没有c:set:
在tiles-defs.xml中:
<definition name="index" template="/WEB-INF/tiles/base.jsp">
<put-attribute name="title" value="home.title"/>
<put-attribute name="header" value="/WEB-INF/includes/iheader.jsp"/>
...
</definition>
Run Code Online (Sandbox Code Playgroud)
在base.jsp中:
<head>
<tiles:importAttribute name="title" />
<title><spring:message code="${title}"></spring:message></title>
</head>
Run Code Online (Sandbox Code Playgroud)
在messages.properties中:
home.title=Homepage title
Run Code Online (Sandbox Code Playgroud)
Tim*_*mii 10
您可以将spring消息键放到tiles title属性中.
<definition name="home" extends="base.definition">
<put-attribute name="title" value="message.key.welcome.text" />
<put-attribute name="body" value="/WEB-INF/views/home.jsp" />
</definition>
Run Code Online (Sandbox Code Playgroud)
并在jsp这样的东西中使用它
<c:set var="titleKey">
<tiles:insertAttribute name="title" ignore="true" />
</c:set>
<title><spring:message key="${titleKey}" /></title>
Run Code Online (Sandbox Code Playgroud)
我手上没有tile + spring项目所以我无法检查语法100%是否正确但我之前使用过这种方法.
当然,你可以做这样的事情来获得每页标题
<title><spring:message key="welcome.${titleKey}"/></title>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5378 次 |
| 最近记录: |