3

MyEclipse を使用してプログラムをコンパイルし、国際化を実現したいので、fmtタグの使用を選択します。

コードは次のとおりです。

<fmt:setLocale value="${param.locale }" scope="session" />

Book は${param.locale }、ブラウザのdefault-language. 言語を変更するために、英語と中国語の 2 つの言語を使用します。ブラウザdefault-languageを英語に設定しているにもかかわらず、jsp ページをリロードすると、言語は常に中国語になります。何が問題なのか教えていただけますか?

完全なコード:

<%@ taglib prefix="fmt" uri="java.sun.com/jsp/jstl/fmt"; %> 
<fmt:setLocale value="${param.locale }" scope="session" /> <fmt:setBundlebasename="loginpage"/> <input type="text" id="text1" /> <br/> <input type="password" id="text2" /> <br /> <input type="submit" id="smb" value="<fmt:message key="login_sub" />" />     
4

1 に答える 1

2

いいえ、そうではありません。ELparamオブジェクトは、リクエスト パラメータ名を単一の値にマップします。param.locale存在する場合は、タグlocaleを介して設定できます。fmt:setLocale/>

この記事のテキスト -カスタム タグによる書式設定と国際化

データをフォーマットするときに JSTL タグによって使用されるロケールは、通常、各 HTTP 要求の一部としてユーザーのブラウザーによって送信される Accept-Language ヘッダーを調べることによって決定されます。そのようなヘッダーが存在しない場合、JSTL は、デフォルトのロケールを指定するために設定できる一連の JSP 構成変数を提供します。これらの構成変数が設定されていない場合は、JSP コンテナが実行されているオペレーティング システムから取得される JVM のデフォルト ロケールが使用されます。

SOスレッドを見てみましょう - How to set JSTL locale from Java code?

于 2012-12-19T07:34:29.383 に答える