Os beans são muito importantes para os desenvolvedores JSF, portanto, é fundamental entender a especificação JavaBean. Nesta seção veremos as partes relevantes para o desenvolvimento com JSF.
As características mais importantes de um bean são suas propriedades. Uma propriedade tem:
- Um nome;
- Um tipo;
- Métodos para obter (getter) e/ou definir (setter) o valor da propriedade.
Veja que os JavaBeans são classes Java, portanto, propriedades são os atributos desta classe.
Uma propriedade não deve ser acessada diretamente, mas através dos métodos de acesso (getters e setters). Porém, na especificação JavaBean isso não é correto.
Uma propriedade de um JavaBean pode ser:
- Leitura/escrita;
- somente-leitura;
- somente-escrita;
- simples: conter apenas um valor, ou indexado, quando representa uma lista de valores.
Para obter o resultado de uma propriedade, o bean precisa ter um método da seguinte forma:
public ClasseDaPropriedade getPropriedade() { ... }
Para alterar uma propriedade:
public setPropriedade(ClasseDaPropriedade propriedade) { ... }
A especificação ainda exige que a classe Bean tenha pelo menos um construtor padrão, ou seja, sem parâmetros.
O exemplo abaixo ilustra um bean Pessoa com as propriedades nome, idade e profissoes.
public class Pessoa {
private String nome;
private Long idade;
private List profissoes;
public Pessoa() {
}
public Pessoa(String nome, Long idade, List profissoes) {
this.nome = nome;
this.idade = idade;
this.profissoes = profissoes;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Long getIdade() {
return this.idade;
}
public void setIdade(Long idade) {
this.idade = idade;
}
public List getProfissoes() {
return this.profissoes;
}
public void setProfissoes(List profissoes) {
this.profissoes = profissoes;
}
}
Uma propriedade possui apenas o método getter para somente-leitura, somente o método setter para somente-escrita ou ambos os métodos para leitura e escrita. Seguir o Padrão Bean!
public class UsuarioBean {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
O XML de configuração dos beans deve-se parecer com este:
<faces-config ...>
<managed-bean>
<managed-bean-name>usuarioBean</managed-bean-name>
<managed-bean-class>pacote.UsuarioBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
O XML acima declara que teremos um managed bean chamado “usuarioBean”, que é referente a classe UsuarioBean, ou seja, sempre que usarmos o nome “usuarioBean” em uma página JSF, estamos falando de uma instância da classe UsuarioBean.
A propriedade managed-bean-scope define o escopo do bean. Neste caso, o escopo é request, o que significa que o estado do bean será mantido a cada requisição do cliente.
0 comentários :
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.