Cómo limitar el numero de caracteres que muestra un h:outputText

por | Feb 1, 2008 | General

En alguna ocasión, trabajando con JSF, he necesitado limitar el número de caracteres que se muestran en un elemento de salida de texto, como un outuputText.Una forma fácil de hacerlo es implementar un Converter personalizado.

En primer lugar necesitas declarar una clase que implemente la interfaz javax.faces.convert.Converter e implementar los métodos getAsObject y getAsString.
Aquí tienes la implementación del Converter: StringLimiterConverter

package es.neodoo.control.jsf;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;

public class StringLimiterConverter implements Converter {
private static final String LIMIT_PARAMETER_NAME = «limit»;
private static final int DEFAULT_LIMIT = 5;

public Object getAsObject(FacesContext context, UIComponent component, String value) {
return limit(value, getLimitAttribute(component));
}

public String getAsString(FacesContext context, UIComponent component, Object value) {
if (! (value instanceof String))
return null;
else {
return limit(value.toString(), getLimitAttribute(component));
}
}

private int getLimitAttribute(UIComponent component) {
Object att = component.getAttributes().get(LIMIT_PARAMETER_NAME);
if (att == null)
return DEFAULT_LIMIT;
else
return Integer.parseInt((String)component.getAttributes().get(LIMIT_PARAMETER_NAME));
}

private String limit(String s, int limit) {
String limited = s;
if (! (s.length() <= limit))
limited = s.substring(0, limit);
return limited;
}
}

Después registra el converter en el archivo faces-config.xml

stringLimiterConverter
tes.jsf.converter.StringLimiterConverter

Y ya puedes usarlo a través de la etiqueta de JSF

Con el atributo <f:attribute name=»limit» value=»6″ /> podemos indicarle el número de caracteres que queremos que nos muestre

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.