I'm working on User authentication, this is my code of AutenticacoaBean
. When I click the enter button on my authentication screen, the following error occurs:
could not resolve property: official of: br.com.horasExtras.domain.Funcionarios
package br.com.horasExtras.bean;
import java.io.IOException;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import org.omnifaces.util.Faces;
import org.omnifaces.util.Messages;
import br.com.horasExtras.dao.FuncionariosDAO;
import br.com.horasExtras.domain.Funcionarios;
@ManagedBean
@SessionScoped
public class AutenticacaoBean {
private Funcionarios funcionario;
public Funcionarios getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionarios funcionario) {
this.funcionario = funcionario;
}
@PostConstruct
public void iniciar() {
funcionario = new Funcionarios();
}
public void autenticar() {
try {
FuncionariosDAO funcionariosDAO = new FuncionariosDAO();
Funcionarios funcionariosLogado =
funcionariosDAO.autenticar(funcionario.getMatricula(),funcionario.getSenha());
if (funcionariosLogado == null){
Messages.addGlobalError("Matricula ou Senha inválida");
return;
}
Faces.redirect("./templates/Modelo.xhtml");
} catch (IOException erro) {
erro.printStackTrace();
Messages.addGlobalError(erro.getMessage());
}
}
}
This is the code for the Officers class:
@SuppressWarnings("serial")
@Entity
public class Funcionarios extends GenericDomain {
@Column(length=100,nullable=false)
private String nmfuncionario;
@Column(nullable=false)
private BigDecimal salario;
@Column(length=10,nullable=false)
private String matricula;
@Column(length=15,nullable=false)
private String lotacao;
@Column(length=1,nullable=false)
private String tipo;
@Column(length=20,nullable=false)
private String senha;
public String getNmfuncionario() {
return nmfuncionario;
}
public void setNmfuncionario(String nmfuncionario) {
this.nmfuncionario = nmfuncionario;
}
public BigDecimal getSalario() {
return salario;
}
public void setSalario(BigDecimal salario) {
this.salario = salario;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getLotacao() {
return lotacao;
}
public void setLotacao(String lotacao) {
this.lotacao = lotacao;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
This is the Officials xHtml:
<ui:define name="conteudo">
<h:form id="formListagem">
<p:panel header="Funcionários - Listagem">
<p:dataTable id="tabela" emptyMessage="Nenhum registro encontrado."
paginator="true" value="#{funcionariosBean.funcionarios}" var="funcionarios" rows="10"
paginatorPosition="top">
<f:facet name="header">
<p:commandButton value="Novo" oncomplete="PF('dialogo').show();"
actionListener="#{funcionariosBean.novo}" update=":formCadastro:painel" />
<p:commandButton value="Fechar" oncomplete="PF('dialogo').hide();"/>
</f:facet>
<p:column headerText="Nome" sortBy="#{funcionarios.nmfuncionario}"
filterBy="#{funcionarios.nmfuncionario}">
<h:outputText value="#{funcionarios.nmfuncionario}" />
</p:column>
<p:column headerText="Matricula" sortBy="#{funcionarios.matricula}"
filterBy="#{funcionarios.matricula}">
<h:outputText value="#{funcionarios.matricula}" />
</p:column>
<p:column headerText="Lotação" sortBy="#{funcionarios.lotacao}"
filterBy="#{funcionarios.lotacao}">
<h:outputText value="#{funcionarios.lotacao}" />
</p:column>
<p:column headerText="Opções">
<p:commandButton icon="ui-icon-trash" actionListener="#{funcionariosBean.excluir}"
update=":mensagem :formListagem:tabela">
<p:confirm header="Confirmação" message="Deseja excluir o funcionário?"
icon="ui-icon-alert" />
<f:attribute name="funcionarioSelecionado" value="#{funcionarios}"/>
</p:commandButton>
<p:commandButton icon="ui-icon-pencil" actionListener="#{funcionariosBean.editar}"
update=":formCadastro:painel" oncomplete="PF('dialogo').show();">
<f:attribute name="funcionarioSelecionado" value="#{funcionarios}"/>
</p:commandButton>
</p:column>
</p:dataTable>
<p:confirmDialog global="true">
<p:commandButton value="Sim" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="Não" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</p:panel>
</h:form>
<p:dialog header="Funcionários - Cadastro" widgetVar="dialogo"
draggable="false" resizable="false" modal="true" closable="false">
<h:form id="formCadastro">
<h:panelGrid id="painel" columns="2">
<p:outputLabel value="Nome:" />
<p:inputText maxlength="100" size="100"
value="#{funcionariosBean.funcionario.nmfuncionario}"
required="true" requiredMessage="O campo 'Nome' é obrigatório"/>
<p:outputLabel value="Matricula:" />
<p:inputText maxlength="10" size="10"
value="#{funcionariosBean.funcionario.matricula}"
required="true" requiredMessage="O campo 'Matricula' é obrigatório"/>
<p:outputLabel value="Lotação:" />
<p:inputText maxlength="10" size="10"
value="#{funcionariosBean.funcionario.lotacao}"
required="true" requiredMessage="O campo 'Lotação' é obrigatório"/>
<p:outputLabel value="Salário:" />
<p:inputText maxlength="10" size="10"
value="#{funcionariosBean.funcionario.salario}" required="true"
requiredMessage="O campo 'Salário' é obrigatório"
converterMessage="Informe um valor válido para o campo 'Salário''"
validatorMessage="Informe um valor entre 0,01 e 99999,99 para o campo 'Salário'">
<f:validateDoubleRange minimum="0.01" maximum="99999.99" />
<f:convertNumber locale="pt_BR" minFractionDigits="2" />
</p:inputText>
<p:outputLabel for="senha" value="Senha:" />
<p:password id="senha" maxlength="20" size="20" redisplay="true"
value="#{funcionariosBean.funcionario.senha}"
required="true" requiredMessage="O campo 'Senha' é obrigatório"/>
<p:outputLabel for="tipo" value="Tipo:" />
<p:selectOneRadio id="tipo" value="#{funcionariosBean.funcionario.tipo}"
required="true" requiredMessage="O campo 'Tipo' ´obrigatório">
<f:selectItem itemValue="A" itemLabel="Administrador" />
<f:selectItem itemValue="U" itemLabel="Usuário" />
</p:selectOneRadio>
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Salvar"
actionListener="#{funcionariosBean.salvar}"
update=":mensagem :formCadastro:painel :formListagem:tabela" />
<p:commandButton value="Fechar" oncomplete="PF('dialogo').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>