Na série de vídeo-aulas que eu fiz para o portal DevMedia sobre o Seam Framework, eu mostrei como podem ser usadas as anotações para registro de Conversores JSF. A notação é bastante simples. Imagine que você tenha um cadastro de produtos.
Veja o código do conversor:
@Name("productConverter") @BypassInterceptors @Converter(forClass=Product.class) public class ProductConverter implements javax.faces.convert.Converter{ public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) { // Insira o código que transforme a string no objeto desejado (Product) } public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) { // Insira o código que transforme o objeto desejado (Product) em String } }
Para registrar um conversor temos que usar as anotações:
@Name – Registra o conversor como um componente Seam
@BypassInterceptors – Indica que o conversor não deve sofrer ação dos intercetadores SEAM.
@Converter – Registra o conversor no contexto JSF, o atributo forClass indica a classe que iremos converter.
Também poderíamos cria o conversor usando um identificador, porém eu fiz alguns testes e para determinados comportamentos são gerados erros relacionados ao controle de estado. Se você também teve estas experiências, compartilhe-as!