Olá desenvolvedores, neste tutorial implementaremos o managedBean que é o responsável pela delegação de funções específicas para a camada de visão (view). Na camada de visão é onde os dados solicitados da camada de modelo (Model) são exibidos.
FORMULÁRIO DE LANÇAMENTO
A primeira ação na página de formulário.xhtml é a “importação” da implementação do menu que deverá estar presente em todas as páginas. Ressaltando que esta não é uma boa prática, no entanto, neste momento atende nossas necessidades de forma rápida.
O formulário de lançamento trará um componente h:form aninhado dentro do outro. O primeiro h:form além de receber estilização de alinhamento do formulário, também terá o id=”formLancamento” atribuído. Dentro do segundo par de componentes h:form o formulário será de fato implementado.
Assim, insira no h:form aninhado o componente h:panelGrid que dividirá o formulário em duas colunas.
<h:panelGrid columns=”2”></h:panelGrid>
Dentro do h:panelGrid, o primeiro passo será definir um título para o formulário por meio do componente f:facetd, para utilizar este componente é preciso tê-lo importado antes no head, xmlns:f=”http://java.sun.com/jsf/core”>.
O primeiro componente h:inputtext do formulário de cadastro será o campo “id” que deverá estar desabilitado.
O formulário receberá ainda outros três componentes do tipo h:outputLabel e h:inputText, sendo eles para Nota Fiscal, Origem e Destino respectivamente.
E para finalizar a construção do formulário iremos trazer da primeirapágina.xhtml o agrupamento de botões h:panelGroup. Este agrupamento inclui os botões de adicionar um novo lançamento, Salvar, Remover e Limpar. Substitua o managedBean, PessoaBean, pelo LancamentoBean.
CLASSE BEAN
Assim, neste tutorial, uma vez que já estruturamos a camada de modelo, implementaremos agora o managedBean de lançamento. Desse modo dentro do package br.com.cursojsf crie a classe LancamentoBean, que receberá as anotações @ViewScoped, e @ManagedBean qual será atribuído o mesmo nome da classe.
O escopo da classe sempre receberá a instância da Entidade Lancamento, que neste caso, é também a instância da camada de modelo. Do mesmo modo instanciaremos também o DaoGeneric que como argumento receberá a Entidade Lancamento. E se serão mais de um lançamento precisaremos então declarar uma lista. Gere os métodos Getters and Setters para todos eles.
A classe LancamentoBean implementará ainda o método salvar() que retornará uma String vazia, visto que queremos que os dados retornados sejam exibidos na mesma tela.
Os dados obtidos da tela serão então injetados na Entidade Lancamento. Porém, antes, é preciso que o escopo do método salvar() recupere os dados do usuário Logado, para só então atribuí-lo a Entidade. E uma vez que os dados estiverem injetados na Entidade Lancamento o DaoGeneric irá salvá-los.
EM POUCAS PALAVRAS
Neste tutorial implementamos o managedBean e estruturamos o formulário de lançamentos, bem como o método salvar. Assim os lançamentos já estão sendo gravados na base de dados com sucesso. No próximo tutorial implemetaremos as ações dos demais botões.