我正在使用 freemarker、SiteMesh 和 Spring 框架。对于页面,我使用 ${requestContext.getMessage()} 从 message.properties 获取消息。但是对于装饰者来说,这是行不通的。我应该怎么做才能让sitemesh的国际化工作?
dmouraneto
问问题
1779 次
2 回答
2
您必须使用fmt标签库。
首先,在装饰器的第一行添加 sitemesh 和 fmt 的 taglib。
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator"%>
<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>
<fmt:setBundle basename="messages" />
在我的示例中,i18n 文件是 messages.properties。然后你需要使用 fmt 标签来使用这些消息。
<fmt:message key="key_of_message" />
于 2008-09-19T20:13:25.717 回答
0
如果您更喜欢模板和 freemarker servlet,则可以在模板中输入以下内容:
<#assign fmt=JspTaglibs["http://java.sun.com/jstl/fmt"]>
<@fmt.message key="webapp.name" />
在你的web.xml
:
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>messages</param-value>
</context-param>
于 2008-10-08T10:24:03.433 回答