could not resolve Property: funcionario of: br.com.horasExtras.domain.Funcionarios

Asked

Viewed 98 times

1

I am working on User authentication, this is my code AutenticacoaBean. When I click the login button of my authentication screen, the following error occurs:

could not resolve Property: funcio 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 of the Employees 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 and the Employee 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>

  • How is your XHTML?

  • Put the code of the Employee class is XHTML.

  • From what I can tell, your Employees class does not have the working attribute, which is exactly what the error message is saying. When you clicked the login button, the values of the forms were probably submitted and the browser was redirected to another page. Post here the XTHML to which the browser was redirected after authentication (I don’t think this is the one you posted - or it is incomplete because it is a define, so there is an Insert somewhere).

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.