Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/12/2011, 18:34
DrakoFire
 
Fecha de Ingreso: febrero-2010
Ubicación: Metepec
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: formato de numeros en struts2

De hecho lo ideal y supongo que lo que buscabas @herwex es no trabajar doble, eso de estar formateando las cantidades en la Clase Action y envíarlas como texto a la JSP, se me hace algo burdo y sin sentido, ya que la ventaja de struts es ahorrar código.

A mi me funciono con la tag de <s:text></s:text> lo que pasa es que hay que tener en cuenta algo muy importante:

primero hay que generar un archivo para las propiedades donde irán los formatos con la siguiente sintaxis:

Código:
format.time = {0,time}
format.number = {0,number,#0.0##}
format.percent = {0,number,##0.00'%'}
format.money = {0,number,\u00A4##0.00}
por ejemplo, este archivo deberá ir dentro del paquete donde tiene la clase de nuestro Action, si usan Maven deberá ir en resources en un paquete con el mismo nombre del paquete donde tenemos nuestra Clase. (bueno supongo que se los imaginarán los que tengan un poco de tiempo utilizando Maven, los que no ya saben! jaja).

Por último utilizamos la siguiente sintaxis, en la JSP:

Código:
<s:text name="format.money">
     <s:param name="value" value="valorNumero"/>
</s:text>
con esto logramos que nos reconozca el valor y posteriormente no las formatee, conforme pusimos en el archivo de propiedades.

La documentación de la tag <s:text> es la siguiente:

[URL="http://struts.apache.org/2.2.3/docs/formatting-dates-and-numbers.html"]http://struts.apache.org/2.2.3/docs/formatting-dates-and-numbers.html[/URL]

Ahora lo que a mi me costo descubrir (por que así nada más luego no funciona), fue lo que les comento del archivo de las properties, que debe tener el mismo nombre de la Clase del Action, y debe de estar en el mismo paquete, por ejemplo

com.drakonia.control.ClaseDrako --> Clase del Action
com.drakonia.control.ClaseDrako.properties --> Archivo de las propiedades donde pones los formatos

De esta forma funciona. Espero que haya sido claro si no, no duden en consultar!!

Saludos!