0

在我的 XHTML 页面中,我不能调用在托管 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>

我想像这样在命令按钮的动作监听器中调用“creerEmp”方法#{empbean.creerEmp()},但我不能这样做,请有人帮助我

4

2 回答 2

0

应该与#{empbean.creerEmp}. ActionEvent 参数不是必需的。

您应该首先尝试不使用组合组件,看看您的 ActionListener 方法是否有效。此外,我认为您错误地使用了组合组件。

于 2013-05-22T06:37:00.403 回答
0

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

<p:commandButton  disabled="#{empbean.saisie}" value="Valider" 
    update="dd" style="margin-left: 250px;"  action="#{empbean.creerEmp}"/>
于 2013-05-22T05:22:44.167 回答