JavaBean dúvidas

3 respostas
fernandoh.computacao

E ai pessoal, blza…

alguem se propoe a discutir e colocar a disposição pra esclarecer algumas dúvidas… agradeço…

Estou buscando aprofundar em java, mas de início deparei com alguns questionamentos sobre o JavaBean…

Antes somente pra deixar claro, dei uma pesquisada na net, análisei alguns exemplos, entao diga-se d passagem, estou buscando… enfim

  1. Qual a real necessidade de usar JavaBean, com exemplos claros, se possível.
    pq pelo que entendi (bean salva o estado do objeto e restaura quanto eu quiser, implementa serializable, bla bla bla)

  2. pra q vou querer pegar o estado desse tal objeto, qnd? e como? isso é mais implementado pra web? e desktop é valido?

  3. Diz q o construtor de um BEAN deve ser nulo, sem parametro, mas e se fizer isso?

MyJavaBean() { //correto
}

MyJavaBean(String nome) {
 this.nome = nome;
}

MyJavaBean(String nome, int idade) {
 this(nome);
 this.idade = idade;
}

-> Vai acontecer oq? “quebrar” a implementação serializable?

  1. E por fim… ja que “resolvi” usar serializable. Posso continuar usando minha classe normalmente em outras partes do programa msm q ñ sejam serializable?
    Se alguem puder ajudar

3 Respostas

levymoreiraleite

Cara tambem sou iniciante com jsf mas até onde sei funciona assim:

  1. Qual a real necessidade de usar JavaBean, com exemplos claros, se possível.
    pq pelo que entendi (bean salva o estado do objeto e restaura quanto eu quiser, implementa serializable, bla bla bla
    R:A pagina web JSF é só uma pagina web que para o terminal(cliente) será somente ums tags html, as informações que vem dos edits e dos componentes de uma pagina jsf tem que ir pra algum lugar não concorda? Ai é que o Bean entra você cria ele como uma classe java normal ex: beanex.java e declara o mesmo no arquivo faces-config.xml da seguinte maneira:

    beanex
    beanex
    session

    aqui dou um nome ao bean que uso o mesmo nome da classe, o nome da classe é o segundo campo, e por ultimo digo quando será criado o bean no caso estou dizendo que meu bean será de sessão, ou seja enquanto a sessão do navegador estiver aberta o bean será o mesmo. Poderia ter criado um escorpo de aplicação ou por requisição(request) etc…

  2. pra q vou querer pegar o estado desse tal objeto, qnd? e como? isso é mais implementado pra web? e desktop é valido?
    R:Essa foi pesada, se deu pra entender algo do que disse anteriormente vai pegar essa facil se a pagina jsf é só uma tela (uma visão) para os clientes, o bean é o controlador a logica de tudo esta lá. Vamos ao exemplo:
    obs: perdoe qualquer erro estou fazendo sem ide alguma.
    primeiro o bean(camada de negocios onde as coisas acontecem):
    http://pastebin.com/VQmaD5Cv

agora a pagina jad(que é o que o usuario ver )
http://pastebin.com/309WwPNG

  1. Diz q o construtor de um BEAN deve ser nulo, sem parametro, mas e se fizer isso?
    R: Eu incho meu construtor do bean de condigo e até agora não tive problemas…

eita 9h já, tenho que estudar fui.
Obs: Qualquer coisa errada ai me corrijam. Fuiiii

A

JavaBean (POJO) ou ManagedBean (JSF)?

drigo.angelo

Concordo com levymoreiraleite,

Mas apenas salientando um JavaBean é um padrão de classes que seguem algumas regras
veja aqui.

Ou seja precisa ser Serializable, um construtor vazio, gets e sets…

Mas, como uma classe qualquer, pode ter outros construtores/métodos/atributos/etc…
ex: Se você tem um JavaBean e quer que ele tenha um construtor que já inclua alguns atributos, não tem erro algum, mas eu geralmente chamo o construtor padrão primeiro (me corrijam se estiver errado), tipo:

public Class Pessoa implements java.io.Serializable{ private String nome; public Pessoa(){ //Aqui também pode ter código a vontade, como iniciar variáveis com valores padrão, etc.. this.nome = ""; } //Construtor default, exigido para o padrão JavaBeans public Pessoa(String nome){ //Meu construtor this(); //chama o construtor default this.nome = nome; // faz as outras coisas } public String getNome(){ return this.nome; } public void setNome(String nome){ //algoritmos de validação, caso necessário this.nome = nome; } // Outros métodos, que você quiser, ex.. public void cumprimentar(Pessoa outraPessoa){ System.out.println("Ola, "+outraPessoa.getNome()); } }
Creio que isso já possa ser um JavaBean.

E quanto a recuperar o estado de um objeto é realmente muito util em aplicações web e creio que deva ser em aplicações desktop também, por exemplo, se o usuário do seu sistema cadastra um cliente, depois ele provavelmente vai querer obter informações sobre esse cliente, então, quando o cliente for cadastrado, pode-se persistir o estado desse objeto (com os dados do cliente) e depois quando precisar é só recupera-lo.

Para se persistir um objeto, ele não deve ser necessáriamente um JavaBean (os meus, por exemplo, não são) mas alguns frameworks como o JSF exigem JavaBeans…

Criado 28 de dezembro de 2010
Ultima resposta 29 de dez. de 2010
Respostas 3
Participantes 4