Seam - Getting started: Converters!

Java, Java EE, Java Server Faces, Jboss Seam Add comments

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!

2 comentarios: “Seam - Getting started: Converters!”

  1. Rodrigo Rosa:

    OlĂĄ, Marcos!
    Usei teu post como referĂȘncia para atualizar meus converters JSF para Seam.
    Constatei que, usando o @BypassInterceptors, nĂŁo consigo fazer injeçÔes (@In) de componentes seam (isso que significa “nĂŁo sofrer ação dos interceptadores”?). Resolvi fazendo como nos testes unitĂĄrio Component.getInstance(”meuComponente”).
    Apenas para deixar registrado! =)

  2. Anselmo:

    Opa valeu pela Dica, foi de grande ajuda

Deixe seu comentario

WP Theme & Icons by N.Design Studio
Assine Assine os comentarios