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 packagebr.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).