Um Managed Bean é implementado por uma classe Java, que é chamada de classe Bean. A classe de nível superior Java é um Bean gerenciado se ele é definido como sendo um Bean gerenciado por qualquer outra especificação de tecnologia Java EE, como a especificação da tecnologia JavaServer Faces, ou se ele atende todas as seguintes condições:
- Não ser uma classe interna não estática.
- Ser uma classe concreta ou ser anotada @Decorator.
- Não ser anotado com uma anotação de definição de componente EJB ou declarada como uma classe de Bean EJB no ejb-jar.xml.
- Ter um construtor apropriado, a classe deve ter um construtor sem parâmetros ou a classe deve declarar um construtor anotado @Inject.
Uma típica aplicação JavaServer Faces inclui um ou mais Managed Beans, cada um dos quais podem estar associados com os componentes utilizados em uma página particular. Para saber o alcance do escopo de um Managed Bean utilize o link abaixo:
Escopo: JavaServer Faces Managed Bean
Usando um Faces Managed Bean
1 – Crie um novo projeto web dinâmico com a configuração JavaServer Faces utilizando a biblioteca Mojarra da Oracle. Utilize o código abaixo para criar o Managed Bean e a página principal da sua aplicação. Você pode perceber a cada nova tag que insere no código html, que você conta com as facilidades do JSF para criar sua interface com o usuário de um modo simples e intuitivo:
2 – Rode a aplicação no servidor de aplicação de sua preferencia. Preencha seu nome no campo de texto e clique no botão, assim que o botão é disparado o conteúdo do campo de texto é associado ao Setter do Managed Bean e resgatado através do Getter do método de ação ligado ao botão imprimindo o resultado da ação no console do Eclipse:
Exemplo:
Neste exemplo utilizamos de modo mais simples o Managed Bean de uma aplicação JSF para exibir os dados entrados pelo usuário através de uma pagina da web.
Java
Managed Bean – Participante
package org.desenvolvimento.aberto;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
// Define decoradores
@ManagedBean(name = "Participante")
@RequestScoped
public class Participante {
// Define atributos privados
private long id;
private String nome;
// Metodos Getter e Setter
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String Acao() {
System.out.println("Clique do botão");
System.out.println("Nome: " + this.getNome());
return null;
}
}
JSF – index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<f:loadBundle basename="resources.application" var="msg" />
<head>
<title><h:outputText value="#{msg.welcomeTitle}" /></title>
</head>
<h:body>
<h2>JSF - Desenvolvimento Aberto - Managed Beans</h2>
<h3>
<h:outputText id="lnome" value="Digite o seu nome:" />
</h3>
<h:form>
<h:messages style="color:red" />
<h:panelGrid columns="3">
<h:outputText id="lnome" value="Nome:" />
<h:inputText id="tnome" value="#{Participante.nome}" required="true" />
<h:commandButton id="botao" action="#{Participante.Acao}"
value="Enviar Dados" />
</h:panelGrid>
</h:form>
</h:body>
</html>














































































