在我的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>
我想在命令按钮的actionlistener中调用“creerEmp”方法,就像这样#{empbean.creerEmp()}但是我不能这样做,请有人帮帮我
答案 0 :(得分:0)
actionlistener的方法需要有一个ActionEvent参数。但我认为你想要的是一个正常的动作,应该是这样的:
<p:commandButton disabled="#{empbean.saisie}" value="Valider"
update="dd" style="margin-left: 250px;" action="#{empbean.creerEmp}"/>
答案 1 :(得分:0)
应与#{empbean.creerEmp}
一起使用。 ActionEvent参数不是必需的。
首先应该尝试不使用合成组件来查看ActionListener方法是否有效。此外,我认为您正在错误地使用合成组件。