2012-05-30 4 views
7

Estoy confundido con las librerías de etiquetas jstl:Setlocale no funcionaba en el sitio JSP de formato de moneda en alemán

Quiero dar formato a un número a una moneda con estilo alemán ... pero todo lo que intentaba no lo hizo trabajado ...

me encontré con el siguiente ejemplo, pero la salida es el mismo -.-

<%@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> 

y esa es la salida:

Currency in USA $40.52 

Currency in Germany $40.52 

¿Qué pasa allí?

gracias por su ayuda.

+0

Copié y pegué su JSP y lo probé, y obtuve * Moneda en EE.UU. $ 40.52; Moneda en Alemania 40,52 € * como resultado. Tal vez un problema JDK/JRE? –

+0

¿Qué tipo de problemas podría ser con jdk o ire? – conscience

+0

No lo sé. Falta un i18n.jar, o algo así. –

Respuesta

16

impresionante, por casualidad me dio la solución a mi problema:

El truco es fijar el alcance de parámetros de la etiqueta setLocale a la sesión: D y entonces funciona ^^ dulce :)

por lo que el fragmento de código correcto se ve así:

<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, no se sabe muy bien por qué funciona, pero aquí hay más información acerca de mi configuración del proyecto:

  • Spring 3 Marco (MVC, Seguridad usw.)
  • y una aplicación y el servlet de configuración estándar
  • cada cosa se ejecuta en Tomcat 7 lo que el uso de JSP 2,2

espero que ayude.

+1

Tengo el mismo problema (estoy usando Spring MVC 3.1.4 con tomcat). Cuando configuro el alcance en "página" o "solicitud" en no está funcionando para el que está en la línea siguiente. – Kacper86

0

Tuve el mismo problema. Pero creo que tiene que ver con los archivos de propiedades. Tenía 2 archivos de propiedades, text.properties y text_sv.properties, y cuando la configuración regional inicial no era 'sv', podía cambiarla con fmt: setLocale en cualquier lugar de mis archivos jsp. Pero cuando la configuración regional inicial era 'sv', fmt: setLocale no hizo nada. La sesión no funciona ...

Cuestiones relacionadas