Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Seam – Getting started: Converters!

Marcos Sousa | May 16, 2008

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!

Categories
Java, Java EE, Java Server Faces, Jboss Seam
Tags
GET, Java, Java Server Faces, Jboss Seam, JSF, Page Actions, Seam Framework
Comments rss
Comments rss
Trackback
Trackback

« Brasileiros se destacam no JavaOne Dicas JSF 1.2: Não use nome de resource e propriedade de beans iguais. Saiba pq. »

4 Responses to “Seam – Getting started: Converters!”

  1. Rodrigo Rosa says:
    October 15, 2008 at 8:48 am

    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! =)

    Reply
  2. Anselmo says:
    November 11, 2008 at 8:18 pm

    Opa valeu pela Dica, foi de grande ajuda

    Reply
  3. João Paulo says:
    July 14, 2009 at 4:51 pm

    Olá Marcos, primeira parabens pelo post…
    Estou tendo um problema com o Converter, quando tento atualizar um produto, ao inves de mandar o id da category, ele manda a string com a instancia do objeto categoria.

    Reply
  4. Marcos Sousa says:
    July 14, 2009 at 5:50 pm

    @João Paulo,

    Bom seu conversor tem que ser consistente, se ele gera o ID ele vai receber o ID da categoria. Não tem como ele gerar a descrição e receber o id.

    Abraços,

    Marcos Sousa

    Reply

Leave a Reply

Click here to cancel reply.

Núvens de tags

Agile Eventos Facelets GET Hibernate incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

  • Aos participantes do Bhjs que gostariam de vir para a Globo.com, segue as outras vagas http://t.co/KjBinf4x #bhjs #beagajs 1 week ago
  • Se você precisa buscar dado no disco, prefira assíncrona @luciano #bhjs #beagajs http://t.co/5gCHp7P8 2 weeks ago
  • @DouglasAguiar @HerberthAmaral Porque na copa? 2 weeks ago
  • Slides da palestra 'Indo além com jQuery' #bhjs #beagajs http://t.co/wHbhaI75 2 weeks ago
  • @araujolucas na parte da frente a temperatura está melhor 2 weeks ago
  • Começando a palestra do @cmilfont no #bhjs #beagajs http://t.co/9DZt7MQj 2 weeks ago
  • @isaias_barroso @DeivissonBruno @cmilfont gula ao extremo:) 2 weeks ago
  • Palestra com insights do desenvolvimento do paparazzo #gcom #bhjs #beagajs http://t.co/7igVbtmS 2 weeks ago
  • @flavio1110 energético? 2 weeks ago
  • Alguém indo do Aeroporto de Confins para centro/guitierrez por voltar de 12:00 #bhjs #beagajs 2 weeks ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox