Criando um CRUD em JSF e Ajax com o NetBeans 6.5 Beta


Pré-requisito: NetBeans 6.5 Beta, ou versão mais recente com o pacote Java Web and EE ou completo. O glassfish versão 2 ou 3 deve estar instalado.

Neste tutorial podemos ver como criar uma aplicação CRUD (Create=Criar, Read=Ler, Update=Atualizar, Delete=Excluir) utilizando o NetBeans IDE 6.5 Beta. As principais características demonstrada neste tutorial são: trabalhar com um projeto web utilizando glassfish e java server faces; criar um Persistence Unit (Unidade de Persistência); criar um Entity class (Entidade de classe); gerar automaticamente páginas jsf a partir do entity class.

Vamos começar, primeiramente vá até a aba Services (Ctrl+5), abra o nó Databases e siga os seguintes passos:

  1. clique com o botão direito em Java DB em seguida Start Server (Figura 1)
  2. clique novamente com o botão direito em Java DB agora clique em Create Database…
  3. na próxima janela preenche os campos de acordo com a Figura 2

Figura 1 - Iniciando o servidor Java DB

Figura 2 - Criando um novo banco de dados no Java DB

Agora com o banco de dados criado, vamos então para o nosso projeto no NetBeans, então:

  1. Crie um novo projeto web (File->New project) na categoria Java Web, escolha a opção Web Application (Figura 3)
  2. na janela seguinte preencha os campos de acordo com a Figura 4
  3. Defina o servidor web (recomendado o glassfish v2 ou v3) e o caminho do contexto (Figura 5)
  4. clique em next e selecione o framework: JavaServer Faces (Figura 6)

Figura 3 - Criando um novo projeto web

Figura 4 - Definindo o nome e local do projeto

Figura 5 - Sugestões para escolha do servidor web e configurações

Figura 6 - Adicionando o framework JavaServer Faces ao seu projeto

Agora seu projeto está criado, para testar se o seu projeto está funcionando corretamente com o servidor web, clique com o botão direito no projeto (janela projects – Ctrl+1) e clique em Run.
Bom, o próximo passo é criarmos um Persistence Unit, um Entity class, os controllers do JPA (Java Persistence API):

  1. clique em File->new File, selecione a categoria Persistence, então escolha a opção Persistence Unit e clique em next
  2. Vá até a setinha do combobox e selecione New Data Source…
  3. digite um nome para o jndi name (ex.: dsExemploJsf), em Database Connection selecione a conexão com o banco de dados que você criou no início deste tutorial, clique em ok
  4. na janela Provider and Database preencha os campos de acordo com a Figura 8 em seguida clique em finish
  5. Novamente clique em File->new File, na categoria Persistence, selecione Entity Class e clique em next
  6. na janela seguinte preencha os campos de acordo com a Figura 9 e clique em Finish

Figura 7 - Novo Persistence Unit

Figura 8 - Provider and Database

Figura 9 - Criando um novo Entity class

Depois de gerado o arquivo Livro.java o NetBeans abre automaticamente ele, vamos editar este arquivo para que fique da seguinte forma:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
 
private String isbn;
private String titulo;
private String autor;
private Integer numeroPaginas;
private Double peso;
 
public Long getId() {
return id;
}

Então posicione o cursor na linha imediatamente depois de:

public void setId(Long id) {
this.id = id;
}

e pressione simultaneamente: Alt+insert, selecione Getter and Setter… selecione todos os campos e clique em ok.

Após criarmos o Entity Class, vamos para mais um wizard do netbeans o qual irá nos gerar os códigos necessários para trabalhar com JPA e os arquivos JSF, para isso vamos em File->New File, na categoria Persistence, escolha a opção: JSF Pages From Entity Classes, e siga novamente os passos:

  1. Escolha a Entity class do Livro (Figura 10)
  2. Escolha os pacotes para onde vão ficar os arquivos gerados para manipulação do JPA e JSF (Figura 11), nesta opção perceba que aparece a opção “Ajax-enable generated pages”, que fará com que o código gerado utilize tecnologia Ajax, lembrando que esta opção só está disponível a partir da versão 6.5 beta do NetBeans

Figura 10 - Selecionar Entity classes

Figura 11 - Selecionar pacotes para JPA e JSF

Pronto, agora estamos com todo o código necessário pronto, para que possamos testar o resultado do nosso projeto, construa o projeto (tecle Shift+F11, limpa e constrói o projeto) clique com o botão direito no nome do projeto pela janela Projects (Ctrl+1) em seguida clique em “Undeploy and Deploy” para remover o projeto do servidor web (se houver) e implantar a versão que você acabou de construir (Figura 12).

Se não houver nenhuma mensagem de erro na janela Output (Ctrl+4), você pode executar o projeto através da tecla F6 e ver seu CRUD funcionando bonitinho. (Figuras 13 e 14)

Figura 12 - Undeploy and Deploy (Desimplantação e implantação) do projeto

Figura 13 - CRUD pronto, criando um novo registro

Figura 14 - CRUD pronto, visão geral dos registro após confirmação de inserção do registro

Conclusão: Não é recomendável que uma pessoa que não tenha experiência com Java Server Faces utilize o assistente de geração de CRUD do NetBeans para fazer seu trabalho do dia a dia de produção, a importância dessa característica do IDE NetBeans para esse público é que tenham acesso ao desenvolvimento passo a passo da criação de um CRUD utilizando esses fantásticos frameworks para Java, o aprendizado nessa atividade é bastante satisfatório. Para quem já tem experiência basta olhar o processo de criação e os resultados e já saberá o que fazer. Para quem quer uma coisa prática, sem muito detalhe, e que seja bem rápido de fazer isso aqui é uma mão na roda.

, , , , , , ,

  1. #1 by Eric on 10 de novembro de 2008 - 15:56

    Amigo
    muito bom este tutorial…. mas aqui da erro …
    16:54:48,046 ERROR [JBossInjectionProvider] Injection failed on managed bean.
    javax.naming.NameNotFoundException: exemplo.jpa.LivroJpaController not bound

    to buscando ajuda a 3 dias e me falaram q o JSF 1.1 nao aceita injecao de dependecia, como faço apra mudar para jsf 1.2 ??

    Grato

    Eric

  2. #2 by Laercio Guerço Rodrigues on 31 de dezembro de 2008 - 15:49

    Teria solução identica para Visual Web JSF ?

  3. #3 by Ricardo Sampaio on 1 de janeiro de 2009 - 22:59

    Usei a versão 6.5 do NetBeans (Build 200811100001) e usei o MySql 5. Na criação do projeto estava com um erro no welcomeJSF.jsp que parou de ocorrer quando indiquei para pegar as bibliotecas do jsf 1.2. Ao rodar a aplicação aparece o menu, mas quando eu solicito para ver a lista de itens dá erro de página (ás vezes aparece corretamente uma mensagem dizendo que não há nada a listar, mas as vezes nem isto).
    obs.: Rodei no IE e no Firefox.

  4. #4 by Gustavo on 7 de janeiro de 2009 - 15:12

    Fiz exatamente como o tutorial e não funciona….

  5. #5 by Charles Miranda on 28 de fevereiro de 2009 - 11:36

    Paulo cara. só uma dúvida.
    O toplink não exige um arquivo de mapeamento assim como o Hibernate (.hbm.xml)??
    Caso exija. talvez tenha sido por isso que pessoal aí não conseguiu executar a aplicação.
    Ótimo tutorial cara. Me ajudou pra caramba. fiz usando hibernate e rodou de boa.

    Valeu!!!

  6. #6 by paulocanedo on 28 de fevereiro de 2009 - 15:21

    Charles: sim, realmente existe um arquivo de configuração, é o persistence.xml que é gerado automaticamente quando criamos um Persistence Unit.

    Eric, esse tutorial não está adaptado para o JBoss, por isso você está tendo problemas.
    Laercio, não conheço solução idêntica para o Visual JSF
    Ricardo e Gustavo, seria melhor postar aqui o detalhe do erro que ocorre

  7. #7 by Filipe on 13 de abril de 2009 - 21:36

    olá paulo tudo bem?
    não estou conseguindo vizualizar as imagens no site, teria um outro jeito de acessar as imagens?

    fico no aguardo.

    att

  8. #8 by paulocanedo on 14 de abril de 2009 - 16:14

    Olá Filipe, houve um problema na última atualização que eu fiz do wordpress e então perdi alguns arquivos, vou tentar recuperá-los e assim que conseguir eu te aviso…

  9. #9 by Filipe on 27 de abril de 2009 - 15:48

    Olá Paulo Alguma novidade sobre as imagens?

  10. #10 by paulocanedo on 27 de abril de 2009 - 15:57

    Obrigado por me lembrar, já tinha conseguido recuperar as imagens, já está corrigido.

  11. #11 by filipe on 5 de maio de 2009 - 15:21

    muito obrigado paulo!!!

  12. #12 by Mario Mol on 30 de junho de 2009 - 17:19

    Teria solução identica para Visual Web JSF ?
    ou sabe como reaproveitar o codigo gerado no JSFController para o Visual Web?
    ou como converter o JSF comum no Visual Web?

    Abraços,

  13. #13 by paulocanedo on 5 de julho de 2009 - 16:29

    Infelizmente não conheço solução identica para o Visual Web JSF.

  14. #14 by GuilleGB on 8 de janeiro de 2010 - 23:33

    Olá Paulo procurando sobre desenvolvimento com JSF encontrei este post muito legal. Bem tentei seguir o exemplo porém apresenta o seguinte erro:
    HTTP Status 500 -

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: An exception occurred processing JSP page /forwardToJSF.jsp at line 10

    7: –%>
    8:
    9:
    10:

    ………..
    Minha configutação.
    Netbeans 6.8
    TomCat 6.0.20
    JSF 1.2

    Desde já agradeço!!!

(não será publicado)