Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > campocalculado

Hola atodos,

Estoy realizando una tabla en jsf y en unos de los campos tengo precio de un producto ,el cual le tengo que añadir el iva .hago esto:

<h:outputText value="#{producto.precioBase}*(1-#{producto.iva})" />

Y cuando se muestra en el navegador no hace el calculo. ¿alguna sugerencia?

julio 8, 2015 | Unregistered Commenterlaura

Hola Laura. Te comento que estás usando mal EL (expression language). EL tiene soporte para operaciones aritméticas, así que puedes hacer todo así:


<h:outputText value="#{producto.precioBase * (1 - producto.iva)}" />

Saludos.

julio 8, 2015 | Unregistered CommenterGus Garsaky

Yas me funciona ,gracias,pero ahora me muestra un precio con muchos decimales, como hago para que me muestre solo 2. He estado buscando y he visto que utilizan
DecimalFormat formateador = new DecimalFormat("########.###");

¿como hago para aplicarlo a mi codigo? Yo estoy en una pagina xhtml.

gracias

julio 8, 2015 | Unregistered Commenterlaura

Decimal Format formateador =new DecimalFormal ("o.oo");-->me lo creo en en el mismo xhtml y pongo
<h:outputText value="formateador.format(#{producto.precioBase * (1 - producto.iva))}" />
y no sale. ¿me podeis ayudar?

julio 8, 2015 | Unregistered Commenterlaura

<h:outputText value="#{producto.precioBase * (1 - producto.iva)}" >
<f:convertNumber pattern="#0.00" />
</h:outputText>

Prueba de esta manera, a ver si te funciona. Un saludo

julio 8, 2015 | Registered Commenterloderain

lo he puesto y me sigue dando 9.877777
¿alguna idea?

julio 8, 2015 | Unregistered Commenterlaura

y así:


<h:outputText value="#{producto.precioBase * (1 - producto.iva)}">
<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
</h:outputText>

????

julio 8, 2015 | Registered Commenterloderain

tampoco¿que raro?

julio 8, 2015 | Unregistered Commenterlaura

Pues si, porque yo he probado y me a funcionado, lo único que se me ocurre es que que podrías traer el campo directamente calculado desde la entity, o el beans que uses, en lugar de realizar el calculo en el xhtml, realizarlo en la entidad, con un nuevo atributo precioConIva o algo asi.
pero vamos, te muestro que a mi me funciona perfectamente...

img1

img2

Investiga el tag <f:convertNumber ....> tiene muchas opciones prueba con distintas cosas, tb tiene tipo currency, que es moneda, pero juega con el Locale y es mas complicadete.

Explicacion del tag

De todas es raro que no te funcione, prueba opciones y si lo consigues, ya nos cuentas.

Un saludo.

julio 9, 2015 | Registered Commenterloderain

Se supone que preciobase es un float, ¿tendrá algo que ver?

julio 9, 2015 | Unregistered Commenterlaura

no creo que tenga nada que ver, pero vamos que podrías cambiarlo a double y probar... nunca se sabe. Suerteee!!

julio 9, 2015 | Registered Commenterloderain