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

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

Conocimiento Open Source 

Desde siempre intentamos aplicar la filosofía Open Source también con el conocimiento, por ello nació el Blog Open Source, donde nuestros desarrolladores comparten notas, consejos y tutoriales sobre tecnología y desarrollo, soluciones a problemas diarios, bugs o cualquier información que creemos, puede ser interesante.

0 comentarios

Enviar un comentario

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