-1

freemarker、SiteMesh、Spring フレームワークを使用しています。ページでは、${requestContext.getMessage()} を使用して message.properties からメッセージを取得します。しかし、デコレータの場合、これは機能しません。サイトメッシュで国際化を機能させるにはどうすればよいですか?

4

2 に答える 2

2

fmt taglibを使用する必要があります。

まず、デコレータの最初の行に 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 サーブレットを使用する場合は、テンプレートに次のように入力できます。

<#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 に答える