2012-05-30 7 views
7

の通貨をフォーマットするJSPサイトでは動作しませんでした...のSetLocaleは、私は、JSTLタグのlibsと困惑しているドイツの

を働いていた私は、次の例を見つけましたが、出力は同じ-.-

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" 
     prefix="c" %> 
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" 
     prefix="fmt" %> 

<html> 
<head> 
    <title>format number</title> 
</head> 
<body> 
    <c:set var="val" value="40.52" /> 
    <p> Currency in USA 
    <fmt:setLocale value="en_US"/> 
    <fmt:formatNumber value="${val}" 
       type="currency" /> 
    </p> 

    <p>Currency in Germany 
    <fmt:setLocale value="de_DE"/> 
    <fmt:formatNumber value="${val}" 
       type="currency"/> 
    </p> 
</body> 
</html> 

され、出力のthats:

Currency in USA $40.52 

Currency in Germany $40.52 

何が問題になるのですか?

ご協力いただきありがとうございます。

+0

あなたのJSPを貼り付けて試してみました。アメリカの通貨は$ 40.52です。その結果、ドイツの通貨40,52ユーロ*。たぶんJDK/JREの問題? –

+0

jdkや怒りにはどんな問題がありますか? – conscience

+0

私は分かりません。 i18n.jarが見つからないか、そのようなものです。 –

答えて

16

恐ろしいが、偶然に私は私の問題への解決策を得た:

トリックがセッションにsetLocaleタグのスコープパラメータを設定することです:Dそして、それは甘い^^作品:)

だから、正しいコードスニペットは次のようになります。

<c:set var="val" value="40.52" /> 
<p> Currency in USA 
<fmt:setLocale value="en_US" scope="session"/> 
<fmt:formatNumber value="${val}" 
      type="currency" /> 
</p> 

<p>Currency in Germany 
<fmt:setLocale value="de_DE" scope="session"/> 
<fmt:formatNumber value="${val}" 
      type="currency"/> 

[OK]を、それが動作する理由私は本当に知らないが、ここでは私のプロジェクトのセットアップに関するいくつかの詳細な情報は以下のとおりです。

  • すべてのものは、Tomcatの7で実行春3フレームワーク(MVC、セキュリティusw.)
  • と標準アプリケーションとサーブレットセットアップ
  • ので、私はJSP 2.2

を使用するには、それがお役に立てば幸いです。

+1

私は同じ問題を抱えています(私はTomcatでSpring MVC 3.1.4を使用しています)。 でスコープを "page"または "request"に設定すると、は1行下になります。 – Kacper86

0

私は同じ問題を抱えていました。しかし、私はプロパティファイルと関係があると思います。私は2つのプロパティファイルtext.propertiesとtext_sv.propertiesを持っていました。最初のロケールが 'sv'以外のものだったときは、私のjspファイルのどこにでもfmt:setLocaleで変更することができました。しかし、最初のロケールが 'sv'のとき、fmt:setLocaleは何もしませんでした。セッションはできません..

関連する問題