JSP. 13 Librería formatting
Contiene etiquetas que realizan diversas funciones
relacionadas con formato y localización. Para importar este conjunto
de etiquetas:
<%@taglib
uri="http://java.sun.com/jstl/fmt"
prefix="fmt"%>
Etiqueta formatDate
Permite formatear fechas. Tiene, entre otros, los
siguientes atributos:
Atributo
|
Descripción
|
Requerida
|
Por
defecto
|
type
|
Permite los valores time (sólo hora), date
(sólo fecha) y both (ambos). El valor por defecto es date.
|
No
|
date
|
pattern
|
Permite controlar el formato, podemos ver como
estructurarlo en la clase java.text.SimpleDateFormat
del API de Java.
|
No
|
|
value
|
La fecha en sí o la variable que la contiene.
|
No
|
|
dateStyle
|
full, long, medium, short, default
|
No
|
default
|
timeStyle
|
full, long, medium, short, default
|
No
|
default
|
timeZone
|
Zona horaria.
|
No
|
Default time zone
|
var
|
Nombre de la variable donde guardar la fecha
formateada.
|
No
|
Imprimir en la página
|
scope
|
No
|
page
|
Ejemplo:
Hoy
es:
<fmt:formatDate
value="${pageScope.fecha}"
pattern="dd/MM/yyyy"/>
<br />
Son las:
Son las:
<fmt:formatDate
value="${pageScope.fecha}"
pattern="HH:mm:ss"/>
<br />
Es el
Es el
<fmt:formatDate
value="${pageScope.fecha}"
pattern="DD"/>º
día del año.
<br /><br />
formatDate (1):
formatDate (1):
<fmt:formatDate
type="time"
value="${pageScope.fecha}"
/>
<br />
formatDate (2):
formatDate (2):
<fmt:formatDate
type="date"
value="${pageScope.fecha}"
/>
<br />
formatDate (3):
formatDate (3):
<fmt:formatDate
type="both"
value="${pageScope.fecha}"
/>
<br />
formatDate (4):
formatDate (4):
<fmt:formatDate
type="both"
dateStyle="short"
timeStyle="short" value="${pageScope.fecha}"
/>
<br />
formatDate (5):
formatDate (5):
<fmt:formatDate
type="both"
dateStyle="medium"
timeStyle="medium" value="${pageScope.fecha}"
/>
<br />
formatDate (6):
formatDate (6):
<fmt:formatDate
type="both"
dateStyle="long"
timeStyle="long"
value="${pageScope.fecha}" />
value="${pageScope.fecha}" />
<br />
El
resultado sería:
Hoy
es: 31/05/2013
Son las: 18:32:38
Es el 151º día del año
formatDate (1): 18:32:38
formatDate (2): 31-may-2013
formatDate (3): 31-may-2013 18:32:38
formatDate (4): 31/05/13 18:32
formatDate (5): 31-may-2013 18:32:38
formatDate (6): 31 de mayo de 2013 18:32:38 CEST
Son las: 18:32:38
Es el 151º día del año
formatDate (1): 18:32:38
formatDate (2): 31-may-2013
formatDate (3): 31-may-2013 18:32:38
formatDate (4): 31/05/13 18:32
formatDate (5): 31-may-2013 18:32:38
formatDate (6): 31 de mayo de 2013 18:32:38 CEST
Etiqueta parseDate
Permite convertir una cadena en una fecha, hora o
fecha y hora. Sus atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
value
|
Valor de la fecha a convertir.
|
No
|
|
type
|
date, time, both.
|
No
|
date
|
dateStyle
|
full, long, medium, short, default.
|
No
|
default
|
timeStyle
|
full, long, medium, short, default.
|
No
|
default
|
parseLocale
|
Locale a usar cuando se realice la conversión.
|
No
|
default locale
|
pattern
|
Formato de la fecha.
|
No
|
ninguno
|
timeZone
|
Zona horaria.
|
No
|
default time zone
|
var
|
Nombre de la variable donde se guardará la
fecha.
|
No
|
Print to page
|
scope
|
Ámbito de la variable
|
No
|
page
|
Ejemplo:
<c:set
var="fecha2"
value="01/01/2013"
/>
<fmt:parseDate value="${fecha2}" var="fechaParse" pattern="dd/MM/yyyy" />
<br />
fecha2: <c:out value="${fechaParse}" />
<br />
fecha2 long: <fmt:formatDate value="${fechaParse}" dateStyle="long" />
<br />
fecha2 short: <fmt:formatDate value="${fechaParse}" dateStyle="short" />
<br />
fecha2 dd/MM/yyyy: <fmt:formatDate value="${fechaParse}" pattern="dd/MM/yyyy" />
<fmt:parseDate value="${fecha2}" var="fechaParse" pattern="dd/MM/yyyy" />
<br />
fecha2: <c:out value="${fechaParse}" />
<br />
fecha2 long: <fmt:formatDate value="${fechaParse}" dateStyle="long" />
<br />
fecha2 short: <fmt:formatDate value="${fechaParse}" dateStyle="short" />
<br />
fecha2 dd/MM/yyyy: <fmt:formatDate value="${fechaParse}" pattern="dd/MM/yyyy" />
Resultado:
fecha2: Tue Jan 01 00:00:00 CET
2013
fecha2 long: 1 de enero de 2013
fecha2 short: 1/01/13
fecha2 dd/MM/yyyy: 01/01/2013
fecha2 long: 1 de enero de 2013
fecha2 short: 1/01/13
fecha2 dd/MM/yyyy: 01/01/2013
Etiqueta formatNumber
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
value
|
Valor numérico a formatear.
|
No
|
|
type
|
number, currency, percent
|
No
|
number
|
pattern
|
Permite controlar el formato, podemos ver como
estructurarlo en la clase java.text.DecimalFormat
del API de Java.
|
No
|
ninguno
|
Ejemplo:
<c:set
var="numero">123</c:set>
<br /><fmt:formatNumber value="${numero}" pattern="#"/>
<br /><fmt:formatNumber value="${numero}" pattern="00000000"/>
<br /><fmt:formatNumber value="${numero}" pattern="#.00"/>
<br /><fmt:formatNumber value="${numero/5}" pattern="0000000.000"/>
<br /><fmt:formatNumber value="${numero}" pattern="#"/>
<br /><fmt:formatNumber value="${numero}" pattern="00000000"/>
<br /><fmt:formatNumber value="${numero}" pattern="#.00"/>
<br /><fmt:formatNumber value="${numero/5}" pattern="0000000.000"/>
El resultado es:
123
00000123
123,00
0000024,600
00000123
123,00
0000024,600
Etiqueta parseNumber
Permite convertir a número, porcentaje o moneda.
Sus atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
value
|
Valor numérico a formatear.
|
No
|
|
type
|
number, currency, percent.
|
No
|
number
|
integerOnly
|
true: número
entero, false: número decimal.
|
No
|
false
|
pattern
|
Permite controlar el formato, podemos ver como
estructurarlo en la clase java.text.DecimalFormat
del API de Java.
|
No
|
|
timeZone
|
Zona horaria.
|
No
|
Default time zone
|
var
|
Nombre de la variable, donde se guardará el
número convertido.
|
No
|
Mostrarlo en la página
|
scope
|
Ámbito de la variable donde se guardará.
|
No
|
page
|
Ejemplo:
<c:set
var="num"
value="99.99"
/>
num = <fmt:formatNumber type="number" value="${num}" />
<br />
<fmt:parseNumber type="number" var="num1" value="${num}" integerOnly="true" pattern="#.##" />
num1 = <fmt:formatNumber type="number" value="${num1}" />
<br />
<fmt:parseNumber type="number" var="num2" value="${num}" integerOnly="true" />
num2 = <fmt:formatNumber type="number" value="${num2}" />
num = <fmt:formatNumber type="number" value="${num}" />
<br />
<fmt:parseNumber type="number" var="num1" value="${num}" integerOnly="true" pattern="#.##" />
num1 = <fmt:formatNumber type="number" value="${num1}" />
<br />
<fmt:parseNumber type="number" var="num2" value="${num}" integerOnly="true" />
num2 = <fmt:formatNumber type="number" value="${num2}" />
El
resultado es
num
= 99,99
num1 = 99
num2 = 9.999
num1 = 99
num2 = 9.999
Etiqueta bundle
Carga un archivo de recursos, para que sea
utilizado por las etiquetas message. Sus atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
basename
|
Especifica el nombre base del recurso a cargar.
|
Si
|
Ninguno
|
prefix
|
Valor a anteponer en cada clave de las
etiquetas
|
No
|
Ninguno
|
Etiqueta message
Muestra un mensaje internacionalizado: Sus
atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
key
|
Clave a buscar en el archivo de recursos.
|
No
|
|
bundle
|
Archivo de recursos a usar.
|
No
|
Recurso por defecto
|
var
|
Nombre de la variable donde se guardará el
mensaje.
|
No
|
Imprimir en la página
|
scope
|
Ámbito de la variable.
|
No
|
page
|
Ejemplo:
Desplegamos la carpeta Other Sources, botón
derecho sobre src/main/resources → New → Java.
- Package Name: com.me.jsp.bundle. Click Finish.
Creamos un archivo properties:
- Botón derecho sobre el paquete creado. New → Other.
- Categories: Other, File Types: Properties File. Click Next.
- File Name: num. Click Finish.
Abrimos el archivo num.properties y
añadimos:
color.red=rojo
color.green=verde
color.blue=azul
En la página JSP:
<fmt:bundle
basename="com.me.jsp.bundle.num"
prefix="color.">
<fmt:message key="red"/><br />
<fmt:message key="green"/><br />
<fmt:message key="blue"/><br />
</fmt:bundle>
<fmt:message key="red"/><br />
<fmt:message key="green"/><br />
<fmt:message key="blue"/><br />
</fmt:bundle>
Resultado:
rojo
verde
azul
verde
azul
Etiqueta timeZone
Especifica la zona horaria para cualquier etiqueta
de conversión o formateo que se encuentre en su cuerpo de timeZone.
Sus atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
value
|
Zona horaria a aplicar.
|
Si
|
Ninguno
|
Ejemplo:
<table
border="1">
<c:forEach var="tz" items="<%=java.util.TimeZone.getAvailableIDs()%>">
<tr>
<td>
<c:out value="${tz}" />
</td>
<td>
<fmt:timeZone value="${tz}">
<fmt:formatDate value="${pageScope.fecha}"
timeZone="${tz}" type="both" />
</fmt:timeZone>
</td>
</tr>
</c:forEach>
</table>
<c:forEach var="tz" items="<%=java.util.TimeZone.getAvailableIDs()%>">
<tr>
<td>
<c:out value="${tz}" />
</td>
<td>
<fmt:timeZone value="${tz}">
<fmt:formatDate value="${pageScope.fecha}"
timeZone="${tz}" type="both" />
</fmt:timeZone>
</td>
</tr>
</c:forEach>
</table>
Resultado:
Etc/GMT+12
|
02-jun-2013 20:05:25
|
Etc/GMT+11
|
02-jun-2013 21:05:25
|
Pacific/Midway
|
02-jun-2013 21:05:25
|
...
|
...
|
AST
|
03-jun-2013 0:05:25
|
America/Anchorage
|
03-jun-2013 0:05:25
|
America/Juneau
|
03-jun-2013 0:05:25
|
America/Nome
|
03-jun-2013 0:05:25
|
...
|
...
|
Etiquetas setLocale, setBundle, setTimeZone
setLocale establece un determinado locale
en la variable de configuración locale. Sus atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
value
|
Código que representa el lenguaje y el país.
Ejemplo, España: es_ES.
|
Si
|
en_US
|
variant
|
Vendedor o variante específica del navegador.
|
No
|
Ninguno
|
scope
|
Ámbito de la variable.
|
No
|
page
|
setBundle carga un archivo de recurso y lo
guarda en la variable de configuración de recurso o en la variable
especificada.
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
basename
|
Nombre del recurso a cargar.
|
Si
|
|
var
|
Nombre de la variable donde guardar el recurso.
|
No
|
default
|
scope
|
No
|
page
|
setTimeZone guarda una determinada zona
horaria en la variable de configuración zona horaria o una indicada.
Sus atributos son:
Atributo
|
Descripción
|
Requerido
|
Por
defecto
|
---|---|---|---|
value
|
Zona horaria a guardar.
|
Si
|
|
var
|
Nombre de la variable donde guardar la zona
horaria.
|
No
|
default
|
scope
|
Ámbito de la variable.
|
No
|
page
|
Comentarios
Publicar un comentario