Olá desenvolvedores, neste tutorial implementaremos um formulário que funcionará como um menu básico, bem como a camada de modelo de uma nova Entidade para a nossa aplicação.
Na primeirapagina.xhtml, antes do h:form criaremos um novo componente de formulário h:form. Dentro deste h:form criaremos outros vários componentes do tipo h:commandLink que serão os itens do menu. Os valores de cada h:commandLink serão “Administração”, “Lançamentos” e “Trocar Usuário” respectivamente.
O h:commandLink de valor “Administração”, é a página principal, desse modo a ação será apenas de redirecionamento para a primeirapagina.xhtml. O Trocar Usuário será redirecionado para a página index (tela de login) e Lançamento para a página de Lançamento a ser criada.
Em cada componente h:commandLink insira uma estilização inline que definirá uma margem a esquerda de 1cm entre cada componente.
style=”margin-top=1cm;”
O próximo passo é deixar o formulário de cadastro visível apenas para o administrador do sistema. Desse modo, dentro do h:form insira a propriedade “rendered”, por meio da qual o método permiteAcesso() será invocado.
Dessa forma, quando os demais perfis de ‘SECRETARIO’ E ‘RECEPCIONISTA’ acessarem o sistema, só visualizarão o menu, que os redirecionará para as páginas as quais terão permissão de acesso.
<h:form id=”formPessoa” rendered=”#{pessoaBean.permiteAcesso(‘ADMINISTRADOR’)})” />
IMPLEMENTANDO PÁGINA .XHTML
Para a implementação da página lançamento.xhtml, copie da página index.html, todos os “imports”.
Iremos implementar um formulário de lançamento de dados, no entanto, será necessário a implementação de uma classe Entidade, “Lancamento”. A classe que ficará dentro do package “br.com.entidades” deverá implementar o Serializable.
E para que esta classe se transforme em uma tabela no banco de dados, é preciso adicionar a anotação @Entity. Será necessário também uma chave primária @ID, bem como o gerador automático da primary key.
Os atributos da página de lançamento serão, além do identificador “id” o número da Nota Fiscal, origem e destino, respectivamente.
private Long id;
private String numeroNotaFiscal;
private String empresaOrigem;
private String empresaDestino;
A Entidade Lancamento deverá estar relacionada com a Entidade Pessoa, e por ser um relacionamento de um para muitos deverá ser anotada com @ManyToOne(). E dependendo da versão do JPA será exigido uma segunda anotação.
@ManyToOne(optional = false)
@org.hibernate.anootations.ForeignKey(name=usuario_fk")
private Pessoa usuario;
Clicando com o botão direito do mouse em uma área livre >> Source, gere para todos os atributos os métodos Getters and Setters. Gere também para o “id” o hashCode() and equals()… No arquivo de persistência declare a entidade
<class>br.com.entidades.Lancamento</class>
EM POUCAS PALAVRAS
Esta é primeira parte dessa implementação onde estruturamos a camada de modelo (Model) que estabelece uma ligação entre as camadas de visão (View) e de controle (Controller).