Olá desenvolvedores, neste tutorial daremos início a criação de um novo formulário utilizando o JSF – JavaServer Faces e o Managed Bean. Aproveite este novo módulo para praticar e solidificar os conhecimentos já adquiridos. No entanto, ao longo dessa série de tutoriais apresentarei a vocês conceitos novos.
O JavaServer Faces, como você já sabe, trabalha com o Managed Bean que fica por trás da tela controlando as ações realizadas a partir do framework.
ESTRUTURANDO O MANAGED BEAN
Dentro do pacote de códigos fonte src/main/java do projeto pos-java-maven-hibernate crie simultaneamente o package managedBean e dentro dele a classe UsuarioPessoaManagedBean.
A assinatura da classe deverá ser anotada com a anotação @ManagedBean do pacote javax.faces.bean. Atribuiremos a esta anotação um name, que é sempre o nome da classe, porém, iniciando com a primeira letra minúscula. E por a implementação se tratar de um cadastro cujos dados cadastrados deverão ser exibidos na mesma tela, inseriremos também a anotação @ViewScoped do mesmo pacote.
Desse modo enquanto a tela estiver sendo exibida, isto é, enquanto ela estiver aberta, o ManagedBean cumprirá a missão de ficar controlando os dados. E assim poderemos manipular os dados da forma que quisermos.
No escopo da classe que acabamos de criar, será preciso instanciar a classe persistente, UsuarioPessoa, dessa forma o Managed Bean poderá trabalhar com o objeto usuarioPessoa. Este objeto virá da tela para o Managed Bean para ser persistido no banco de dados. Para o usuarioPessoa gere os métodos Getters and Setters para que os dados vindos da tela possam ser injetados dentro do objeto.
Mas para que os dados possam ser persistidos no banco é preciso instanciar também o DaoGeneric que é a parte persistente do projeto.
CRIANDO O FORMULÁRIO
Estrutura da página index.xhtml com o JSF é semelhante a estrutura de uma página HTML, com o cabeçalho e o corpo da página, exceto pelo uso do prefixo “h”, precedendo os nomes das tags.
Dentro da tag h:body inseriremos o formulário h:form envolvido em um h:panelGrid que renderiza um elemento HTML do tipo “table”. Além da responsividade o panelGrid nos permite manter o formulário organizado informando quantidade de colunas.
<h:panelGrid columns=“2”>
O primeiro campo será do tipo h:inpuText, do tipo readonly, isto é, somente de leitura e receberá o identificador “id”. Por meio do value ligaremos o componente implementado ao Managed Bean, e dessa forma ele poderá controlá-lo. Por meio do value invocaremos o Managed Bean, o objeto instanciado trazendo o atributo correspondente.
<h:inputText readOnly=”true” value=“#{usuarioPessoaManagedbean.usuarioPessoa.id}” />
Objetivando as regras de usabilidade e acessibilidade cada campo deverá ser precedido de um h:outputLabel, que o identificará e o tornará acessível para os buscadores.
Proceda da mesma forma para a implementação dos demais campos referentes ao e-mail, idade, login e senha. Porém, a senha deverá ser um campo do tipo inputSecret.
EM POUCAS PALAVRAS
Neste tutorial estruturamos o ManagedBean para receber os dados vindos da tela por meio do formulário que implementamos utilizando o framework JSF – JavaServer Faces.