pattern outputtext outputlabel number inputtext convertnumber java jsf-2 richfaces converter

java - outputtext - outputlabel format primefaces



Mostrar un nĂºmero en formato decimal de 2 puntos en jsf (1)

Eso puede suceder si el valor no es un Number en absoluto, por ejemplo, una String . Entonces básicamente estás usando el tipo incorrecto para los datos que representa. Para representar monedas en Java, debe usar BigDecimal . Además, asegúrese de que el tipo en la tabla de la base de datos es correcto, es decir, no debe ser un varchar, sino un decimal.

Una vez que haya arreglado el tipo de datos, el <f:convertNumber> funcionará como le indicó. Tenga en cuenta que el atributo de pattern anulará el groupingUsed y minFractionDigits . Deberías usar el pattern u otros. Además, type="number" ya es el predeterminado, por lo que se puede eliminar.

Entonces, o usa

<f:convertNumber pattern="#0.00" />

o

<f:convertNumber groupingUsed="true" minFractionDigits="2" />

Tenga en cuenta que generan diferentes formatos. Probablemente desee establecer la agrupación en false .

También puede usar type="currency" , luego aplicará automáticamente el patrón correcto según el UIViewRoot#getLocale() :

<f:convertNumber type="currency" />

Consulte también la documentación de la biblioteca de etiquetas y el DecimalFormat javadoc.

Estoy usando JSF 2 y RichFaces 3. Aquí en la imagen que se muestra a continuación, los números se muestran como lo que son en la base de datos.

Pero quiero mostrarlos como 6749395.20 si la parte de fracción está allí y 5095138.00 si no hay parte de fracción allí.

Por ahora, he intentado algo como esto.

<rich:column> <f:facet name="header"> <h:outputText value="Total Amount"/> </f:facet> <h:outputText value="#{rr[2]}"> <f:convertNumber type="number" groupingUsed="true" minFractionDigits="2" pattern="#0.00"/> </h:outputText> </rich:column>

En realidad, los estoy mostrando a todos juntos, pero he intentado con todos ellos como todas las combinaciones posibles con type , groupingUsed , minFractionDigits y pattern .

Por que no funciona? ¿Cómo es esto causado y cómo puedo resolverlo?