Pregunta

Estoy tratando de localizar la moneda en mi aplicación web JSP, el problema es cuando pido local, solo me dan código de idioma ( "en") en lugar de lenguaje completo y código de país ( "en_US"). Problema con esto es, formatNumber no funciona cuando el valor de setLocale no contiene código de idioma y el país.

Puedo resolver tras comprobar la configuración regional de idioma al principio de la página JSP y el establecimiento de código de país por defecto para algunos idiomas, y luego poner valor de setLocale, pero este método se ve muy feo para mí. ¿Hay una mejor manera de hacer esto?

Así es como lo hago ahora:

<c:choose>
    <c:when test="${pageContext.response.locale == 'cs'}">
        <f:setLocale value="cs_CZ" />
    </c:when>
    <c:otherwise>
        <f:setLocale value="en_US" />
    </c:otherwise>
</c:choose>
<f:formatNumber type="currency" value="${product.price}" currencyCode="CZK"/>
¿Fue útil?

Solución

La moneda es dependiente en el país, no en el lenguaje. Que realmente necesita para ponerlo así. Una forma más genérica es utilizar un Filter para esto, así que no es necesario CopyPaste el cheque en todas las JSP.

Actualizar : ahora veo que está utilizando HttpServletResponse#getLocale() que devuelve el establecer mediante programación local o de otro tipo de contenedor regional predeterminada. La práctica habitual es utilizar HttpServletRequest#getLocale() para obtener la configuración regional del cliente, por lo tanto:

${pageContext.request.locale}

A ver si eso ayuda. No obstante, usted todavía tiene que comprobar si el país está realmente presente. Un Filter es el mejor lugar para eso.

Otros consejos

Usted está utilizando rayas !! Las rayas se encargará de la configuración regional para usted, y que debería estar recibiendo desde el ActionBeanContext:

<c:set var='curLocale' value='${actionBean.context.locale}'/>

No vaya alrededor de la espalda rayas! Ese es el camino a la angustia y unhapiness! Rayas es su amigo!

En general, se debe no es necesario utilizar <fmt:setLocale> debido a rayas ya se pone en marcha la configuración regional en el filtro de rayas. Una vez más, Rayas es su amigo !! Leer sobre este en el wiki rayas:

http://www.stripesframework.org/display/stripes/Localization

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top