10 de janeiro de 2011

JavaEE 6: Criando um projeto no NetBeans

A partir do nosso ambiente de trabalho (clique aqui) vamos montar nosso primeiro projeto em JEE 6, com JSF 2.0 em quatro passos, basta apenas seguir as imagens.
No NetBeans, crie um novo projeto da seguinte forma...
Passo 1: Crie uma AplicaçãoWeb, que está na categoria Java Web


Passo 2: Informe um nome para o projeto, este eu estou chamando de HelloWorld

Passo 3: Marque a opção "Habilitar injeção de contextos e dependências", mais pra frente vamos usar o CDI - Context and Dependency Inject - próxima postagem explico ele.

Passo 4: Marque a opção de usar o JavaServer Faces, e aba de Configuração substitua o padrão da URL para *.jsf


Pronto...
A estrutura criada será essa:


O NetBeans já cria uma página inicial, ao executar o projeto (F6) o resultado será este:

A partir de agora é só começar a programar! ;)

6 de janeiro de 2011

JavaEE 6: Ambiente de trabalho

Olá pessoal...!
Para trabalhar com o JEE 6 o ambiente de trabalho é mais tranquilo do que o JEE5, vamos usar:
Ferramenta:
NetBeans 6.9.1
Servidor de aplicação:
GlassFish 3.0
Banco de dados:
MySQL

Eu digo que é mais tranquilo porque o servidor de aplicação já vem embutido no NetBeans, o que facilita muito!
Para baixar o NetBeans: http://netbeans.org/downloads/index.html

Segue abaixo a tela de download do Netbeans:
Baixe-o de acordo com sua plataforma de trabalho, ele identifica o SO sozinho mesmo.
Veja que iremos precisar da combinação de Java + Java Web e EE + GlassFish
Caso sua plataforma seja Windows, a versão de download vai ser de 214 MB, para Linux é de 173 MB conforme mostra a imagem...
Para baixar é só clicar em download!


A instalação é bem tranqüila..."Próximo... próximo... próximo..." deixe que ele mesmo defina onde instalar o GlassFish.
Fácil, não? rsrs

MySQL:
Baixe os seguintes arquivos e instale na seqüência que segue:
Download MySQL Community Serverhttp://dev.mysql.com/downloads/mysql/
Durante a configuração, será pedido a senha do usuário root, para esses projetos estarei usando a senha: admin

Agora para acessar o banco visualmente, baixe:
Download MySQL Workbench: http://dev.mysql.com/downloads/workbench/5.2.html
Feito isso... nosso ambiente de trabalho já está pronto! :)

29 de dezembro de 2010

JavaEE 5: SelectOneMenu (comboBox) em JSF 1.2

Na postagem de hoje iremos fazer um SelectOneMenu ou como a maioria conhece ComboBox em JSF 1.2, numa mesma página teremos um dinâmico onde a lista vem de um bean e um estático onde os itens são definidos diretamente no código fonte da página. Segue a imagem:


Segue o código fonte do ClienteBean:

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

public class ClienteBean {
 private List< SelectItem > selectItemsClientes;
 private int codigoClienteSelecionado;

 public List< SelectItem > getSelectItemsClientes() {
  selectItemsClientes = new ArrayList< SelectItem >();
  selectItemsClientes.add(new SelectItem(1, "Andii"));
  selectItemsClientes.add(new SelectItem(2, "João"));
  selectItemsClientes.add(new SelectItem(3, "Maria"));
  return selectItemsClientes;
 }

 public void setSelectItemsClientes(List< SelectItem > selectItemsClientes) {
  this.selectItemsClientes = selectItemsClientes;
 }

 public int getCodigoClienteSelecionado() {
  return codigoClienteSelecionado;
 }

 public void setCodigoClienteSelecionado(int codigoClienteSelecionado) {
  this.codigoClienteSelecionado = codigoClienteSelecionado;
 } 
}

Nesse bean, temos um int que corresponde ao valor selecionado no combo, e uma lista de SelectItem (veja que o SelectItem pertence ao pacote javax.faces, sendo do próprio JSF) com valores que eu setei diretamente no bean(claro que poderiam ser valores do banco), aí vem a pergunta: mas essa lista não poderia ser de objetos mesmo, tipo List< Cliente >? A resposta é sim! Poderia ser uma lista com o objeto Cliente mesmo, porém, iria dar um trabalho muito grande para pegar esse valor, tendo que criar converter e ainda podendo enfrentar problemas de conversão! Para entender melhor, leia isso!

OBS: Lembre-se de mapear o ClienteBean no faces-config.xml, nesse exemplo usei o escopo session mesmo.

Agora segue o código fonte da página jsp que tem os comboBox:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<f:view>
 <head>
  <title>Clientes</title>
 </head>
 <body>
  <h:panelGrid columns="1">
   <h:outputText value="SelectOneMenu com lista dinâmica" />
   <h:selectOneMenu value="#{clienteBean.codigoClienteSelecionado}">
    <f:selectItems value="#{clienteBean.selectItemsClientes}" />
   </h:selectOneMenu>
   
   <h:outputText value="SelectOneMenu com lista estática" />
   <h:selectOneMenu value="#{clienteBean.codigoClienteSelecionado}">
    <f:selectItem itemValue="1" itemLabel="Andii"/>
    <f:selectItem itemValue="2" itemLabel="João"/>
    <f:selectItem itemValue="3" itemLabel="Maria"/>
   </h:selectOneMenu>
  </h:panelGrid>
 </body>
</f:view>
</html>

Bom, para criar selectOneMenu dinâmico, usa-se o selectItems tendo como value a lista. Já para os casos estáticos, usa-se o selectItem setando o itemValue para o codigo do cliente(exemplo) e o itemLabel para o deverá aparecer na lista(exemplo: nome do cliente).

Aconselho dar uma olhada no link, tem vários outros componentes interessantes e úteis:  Mais componentes em JSF