Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.
@self
Page Tree
root
Tabla de contenidos

Ficheros messages.properties

A la hora de desarrollar nuestra aplicación, los textos que queremos mostrar a los usuarios por pantalla han de estar regulados para que, en caso de ser necesario, podamos modificarlos de manera rápida o internacionalizar dichos mensajes. Para conseguir esto tenemos que evitar escribir los textos directamente sobre los ficheros java o los xhtml puesto que esta manera de proceder es incorrecta.

...

Bloque de código
themeEclipse
edit.header=Editar {0}
create.header=Crear {0}
manytoone.empty.table=No hay {0}s asociados a este {1}.
manytoone.change.table.action=Cambiar {0}
manytoone.select.table.action=Seleccionar {0}

Mostrando los mensajes

Una vez que tenemos todos los ficheros de mensajes configurados, sólo queda ver cómo conseguimos que aparezcan en nuestra aplicación. Para ello bastará con hacer uso de los tags específicos si estamos en la parte de la vista (xhtml) o llamadas a FacesMessages si estamos en Java.

Ficheros xhtml/xml

Cabe destacar que los mensajes dispuestos en estos ficheros son de tipo estático, es decir cuando se renderiza la pantalla en cuestión se interpretan e incluyen en ese render de la página.

...

Bloque de código
languagexml
themeEclipse
<exception class="org.jboss.seam.framework.EntityNotFoundException">
    <redirect view-id="/paginas/error.xhtml">
        <message severity="warn">
        	#{messages['error.entidad.noEncontrada']}
        </message>
    </redirect>
</exception>

Ficheros Java

Los mensajes lanzados desde Java, son de tipo dinámico, es decir durante el transcurso de la aplicación, un código nuestro lanza un mensaje que aparece al usuario en la forma que hayamos configurado en la parte de la vista (una barra superior, un pop-up, etc…)

...

Bloque de código
languagejava
themeEclipse
@In("#{messages['IDENTIFICADOR']}");
private String mensaje;
 
@Length(max=5, message="#{messages['too.long']")
@Pattern(regex="[0-9]+")
@NotNull
public String getZip() {
     return zip;
}

Personalización de ficheros de mensajes

En ocasiones, para aplicaciones grandes que tienen muchos mensajes, no es óptimo tener un único fichero de mensajes enorme con todos. La mejor opción de la que disponemos, en caso que queramos mejorar la eficiencia, es dividirlo en varios ficheros e indicar en el código donde se usan.

...

Bloque de código
languagexml
themeEclipse
<page xmlns="http://jboss.org/schema/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://jboss.org/schema/seam/pages http://jboss.org/schema/seam/pages-2.3.xsd"
	bundle="mensajesPersonalizados.properties">

Referencias y documentación