2013-05-22 19 views
0

我無法調用在託管bean中聲明的方法,我是這個平臺的新手,我希望有人向我澄清這一點。我工作的一個JSF 2.1項目與JPA Eclipse的朱諾4.2 這是我管理過的代碼xhtml無法識別在我的XHTML頁面中被管理的Bean中聲明的方法

/* 
* 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」方法按鈕的actionlistener像這樣#{empbean.creerEmp()}但我不能這樣做,請別人幫我

+0

請說明您面臨的確切的警告/錯誤/異常消息,而不是無用的「我不能這樣做」聲明。確切的警告/錯誤/異常消息通常已經是整個答案。如果你無法破譯它,只需與我們分享,我們通常可以用外行人的名義翻譯它。 – BalusC

+0

您正在使用'RequestScoped'和'ViewScoped'作爲'empbean'的範圍。 – Manuel

回答

0

一個actionlistener的方法需要有一個ActionEvent參數。但我認爲,你想要的是一個正常的作用,這應該是罰款是這樣的:

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

應與#{empbean.creerEmp}工作。 ActionEvent參數不是必需的。

您應該首先嚐試不使用組合組件,以查看ActionListener方法是否有效。除此之外,我認爲你錯誤地使用了構圖組件。