-1

我正在使用 freemarker、SiteMesh 和 Spring 框架。对于页面,我使用 ${requestContext.getMessage()} 从 message.properties 获取消息。但是对于装饰者来说,这是行不通的。我应该怎么做才能让sitemesh的国际化工作?

4

2 回答 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 回答