xhtml 不识别在托管 Bean 中声明的方法



在我的XHTML页面中,我不能调用在managed bean中声明的方法,我是这个平台的新手,我希望有人向我澄清这一点。我正在Eclipse Juno 4.2上使用JPA开发JSF 2.1项目这是我的托管代码

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBean;

import java.util.List;
import javax.ejb.Local;
import model.*;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import service.EmpFacadeLocal;
/**
 *
 * @author Louuup
 */
@ManagedBean (name= "empbean")
@RequestScoped
@ViewScoped
public class EmpManagedBean {
public Employe emp;
    @EJB
    public EmpFacadeLocal empfacadelocal; 
    public Boolean saisie;
     private List<Employe> emps;
     private String iddd;
     private Employe selectedemp;
     private List<Employe> filteredemps; 
     private Employe[] selectedemps;
    /**
     * Creates a new instance of EmpManagedBean
     */
    public EmpManagedBean() {
        emps = new ArrayList<Employe>();
    }
     @PostConstruct
    public void initEmp(){
        emp = new Employe();
        saisie = false;
         emps = empfacadelocal.getEmpRq("");
    }
    public Employe getEmp() {
        return emp;
    }
    public void setEmp(Employe emp) {
        this.emp = emp;
    }
    public Boolean getSaisie() {
        return saisie;
    }
    public void setSaisie(Boolean saisie) {
        this.saisie = saisie;
    }
    public List<Employe> getEmps() {
        return emps;
    }
    public void setEmps(List<Employe> emps) {
        this.emps = emps;
    }
    public String getIddd() {
        return iddd;
    }
    public void setIddd(String iddd) {
        this.iddd = iddd;
    }
    public Employe getSelectedemp() {
        return selectedemp;
    }
    public void setSelectedemp(Employe selectedemp) {
        this.selectedemp = selectedemp;
    }
    public List<Employe> getFilteredemps() {
        return filteredemps;
    }
    public void setFilteredemps(List<Employe> filteredemps) {
        this.filteredemps = filteredemps;
    }
    public Employe[] getSelectedemps() {
        return selectedemps;
    }
    public void setSelectedemps(Employe[] selectedemps) {
        this.selectedemps = selectedemps;
    }
    public void findEmpaff(){
        //admin = adminfacadelocal.getAdmin(iddd);
        emps = empfacadelocal.getEmpRq("");
    } 
     public void creerEmp(){
         System.out.println("azertre ");
        empfacadelocal.create(emp);
        saisie = true;
    }
}

这是我的XHTML页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <body>
        <ui:composition template="./../resource/Template.xhtml">
            <ui:define name="title">
                <title> Ajout emp</title>
            </ui:define>
            <ui:define name="page">
                <h:form id="dd">  

                    <p:growl id="growl" showDetail="true"/>  

                    <p:panel header="Fiche Emplyé" >  
                        <h:panelGrid columns="2"  style="margin-bottom:10px" cellpadding="5">
                            <h:outputLabel value="Matricule Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{empbean.emp.matEmp}"/>
                            <h:outputLabel value="Nom Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{empbean.emp.nomEmp}"/>
                            <h:outputLabel value="Prénom Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{empbean.emp.prenomEmp}"/>
                            <h:outputLabel value="Date de naissance Employé :"/>
                            <p:calendar disabled="#{empbean.saisie}" locale="pt" showButtonPanel="true" navigator="true" id="pttCal" value="#{empbean.emp.dateNaisEmp}"/>  
                            <h:outputLabel value="Adresse Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{empbean.emp.adressEmp}"/>
                            <h:outputLabel value="N° téléph Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{emp.emp.numTelfEmp}"/>
                            <h:outputLabel value="E-mail Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{empbean.emp.emailEmp}"/>
                            <h:outputLabel value="N° compte Employé :"/>
                            <p:inputText  disabled="#{empbean.saisie}" value="#{empbean.emp.numCompteEmp}"/>
                            <p:selectOneMenu disabled="#{empManagedBean.saisie}" value="#{empbean.emp.fonctionEmp}">  
                                <f:selectItem itemLabel="Jardinier" itemValue="Jardinier" />    
                                <f:selectItem itemLabel="Agent d'hygiene" itemValue="Agent d'hygiene" /> 
                                <f:selectItem itemLabel="Agent de sécurité" itemValue="Agent de sécurité" />    
                                <f:selectItem itemLabel="Magasinier" itemValue="Magasinier" /> 
                            </p:selectOneMenu> 



                        </h:panelGrid><br/>
                        <p:commandButton  disabled="#{empbean.saisie}" value="Valider" update="dd" style="margin-left: 250px;"  actionListener="#{empbean.   }"/>

                    </p:panel> 
                </h:form>  
            </ui:define>
        </ui:composition>
    </body>
</html>

我想在命令按钮的actionlistener中调用"creerEmp"方法,就像这样#{embean .creerEmp()},但我不能这样做,请有人帮助我

actionlistener的方法需要有一个ActionEvent参数。但我认为你想要的是一个正常的动作,应该像这样:

<p:commandButton  disabled="#{empbean.saisie}" value="Valider" 
    update="dd" style="margin-left: 250px;"  action="#{empbean.creerEmp}"/>

应该与#{empbean.creerEmp}一起工作。ActionEvent参数不需要。

你应该先尝试没有组合组件,看看你的ActionListener方法是否工作。此外,我认为你没有正确地使用组合组件。

最新更新