JSF:找不到方法

JSF:找不到方法,jsf,Jsf,我在开发应用程序时遇到此错误 javax.el.MethodNotFoundException: /test.xhtml @18,99 action="#{ComplexeController.saveComplexe}": Method not found: fr.code.parc.controller.ComplexeController@97aead.saveComplexe() test.xhtml: <h:body> <h1>Génération des

我在开发应用程序时遇到此错误

javax.el.MethodNotFoundException: /test.xhtml @18,99 
action="#{ComplexeController.saveComplexe}": Method not found:
fr.code.parc.controller.ComplexeController@97aead.saveComplexe()
test.xhtml:

<h:body>
<h1>Génération des Complexes</h1>
<h:form>
    Nom Complexe: <h:inputText value="#{ComplexeController.complexe.nomComp}"/><br/>
    Nom Zone: <h:selectOneMenu id="nomZone" value="#{ComplexeController.complexe.zoneParc}" converter="#{GenericConverter}">
        <f:selectItems value="#{ZoneController.remplireItem()}"/>
</h:selectOneMenu>
<br/>
<h:commandButton action="#{ComplexeController.saveComplexe}" value="Insérer un nouveau complexe"/>
<h:commandButton action="#{ComplexeController.updateComplexe}" value="Modifier un complexe"/>
<br/>
<h:commandLink action="complexe" value="acceuil"/>
</h:form>
</h:body>

Génédes络合物
名称复合体:
命名区:

实体Complexe.java

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Complexe generated by hbm2java
 */
@Entity
@Table(name="COMPLEXE"
    ,schema="PROJET"
)
public class Complexe  implements java.io.Serializable {


     private String nomComp;
     private ZoneParc zoneParc;
     private Set<Parc> parcs = new HashSet<Parc>(0);

    public Complexe() {
    }


    public Complexe(String nomComp) {
        this.nomComp = nomComp;
    }
    public Complexe(String nomComp, ZoneParc zoneParc, Set<Parc> parcs) {
       this.nomComp = nomComp;
       this.zoneParc = zoneParc;
       this.parcs = parcs;
    }

     @Id 

    @Column(name="NOM_COMP", unique=true, nullable=false, length=30)
    public String getNomComp() {
        return this.nomComp;
    }

    public void setNomComp(String nomComp) {
        this.nomComp = nomComp;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="NOM_ZONEE")
    public ZoneParc getZoneParc() {
        return this.zoneParc;
    }

    public void setZoneParc(ZoneParc zoneParc) {
        this.zoneParc = zoneParc;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="complexe")
    public Set<Parc> getParcs() {
        return this.parcs;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nomComp != null ? nomComp.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Complexe)) {
            return false;
        }
        Complexe other = (Complexe) object;
        if ((this.nomComp == null && other.nomComp != null) || (this.nomComp != null && !this.nomComp.equals(other.nomComp))) {
            return false;
        }
        return true;
    }

    public void setParcs(Set<Parc> parcs) {
        this.parcs = parcs;
    }
}
    import config.HibernateUtil;
    import fr.code.parc.model.Complexe;
    import java.util.List;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

    /**
     *
     * @author raddaouirami
     */
    public class ComplexeDaoImpl implements ComplexeDao{

        @Override
        public List<Complexe> list() {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            List complexes = session.createQuery("from Complexe").list();
            t.commit();
            return complexes;
        }

        @Override
        public Complexe getComplexe(String nomComp) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            return (Complexe) session.load(Complexe.class, nomComp);
        }

        @Override
        public void save(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.save(complexe);
            t.commit();
        }

        @Override
        public void update(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.update(complexe);
            t.commit();
        }

        @Override
        public void remove(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.delete(complexe);
            t.commit();
        }


    }
import fr.code.parc.dao.ComplexeDao;
import fr.code.parc.dao.ComplexeDaoImpl;
import fr.code.parc.model.Complexe;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author raddaouirami
 */

@ManagedBean
@SessionScoped
public class ComplexeController {

    private Complexe complexe;
    private DataModel listeComplexes;
    private int selectedItemIndex;


    /**
     * Creates a new instance of ComplexeController
     */
    public ComplexeController() {
        complexe = new Complexe();
    }
    /* public Complexe getSelected() {
        if (complexe == null) {
            complexe = new Complexe();
            selectedItemIndex = -1;
        }
        return complexe;
    }*/

    public DataModel getListeComplexes() {
        List<Complexe> liste = new ComplexeDaoImpl().list();
        listeComplexes = new ListDataModel(liste);
        return listeComplexes;
}

    /**
     * @return the complexe
     */
    public Complexe getComplexe() {
        return complexe;
    }

    /**
     * @param complexe the complexe to set
     */
    public void setComplexe(Complexe complexe) {
        this.complexe = complexe;
    }


    public String preparationAddComplexe(){
        setComplexe(new Complexe());
        return "test";
}
    public String preparationEditComplexe(){
        setComplexe((Complexe)(getListeComplexes().getRowData()));
        return "test";
}

    public String DeleteComplexe(){
        Complexe complexes = (Complexe)(getListeComplexes().getRowData());
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.remove(complexes);
        return "complexe";
    }
    public String SaveComplexe(){
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.save(getComplexe());
        return "complexe";
    }
    public String UpdateComplexe(){
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.update(complexe);
        return "complexe";
    }    
}
import java.util.HashSet;
导入java.util.Set;
导入javax.persistence.CascadeType;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.FetchType;
导入javax.persistence.Id;
导入javax.persistence.JoinColumn;
导入javax.persistence.manytone;
导入javax.persistence.OneToMany;
导入javax.persistence.Table;
/**
*hbm2java生成的Complexe
*/
@实体
@表(name=“COMPLEXE”
,schema=“PROJET”
)
公共类Complexe实现java.io.Serializable{
私有字符串nomComp;
私人区域公园区域公园;
私有集parcs=新哈希集(0);
公共复合体(){
}
公共复数(字符串nomComp){
this.nomComp=nomComp;
}
公共复合体(字符串nomComp、区域parc、区域parc、集合parc){
this.nomComp=nomComp;
this.zoneParc=zoneParc;
this.parcs=parcs;
}
@身份证
@列(name=“NOM_COMP”,unique=true,nullable=false,length=30)
公共字符串getNomComp(){
返回此.nomComp;
}
公共void setNomComp(字符串nomComp){
this.nomComp=nomComp;
}
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“NOM_ZONEE”)
公共区域Parc getZoneParc(){
返回此.zoneParc;
}
公共空间集合区域Parc(区域Parc区域Parc){
this.zoneParc=zoneParc;
}
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy=“complexe”)
公共集getParcs(){
归还此.parcs;
}
@凌驾
公共int hashCode(){
int hash=0;
hash+=(nomComp!=null?nomComp.hashCode():0);
返回散列;
}
@凌驾
公共布尔等于(对象){
//TODO:警告-如果未设置id字段,此方法将不起作用
if(!(Complexe的对象实例)){
返回false;
}
Complexe other=(Complexe)对象;
如果((this.nomComp==null&&other.nomComp!=null)| |(this.nomComp!=null&&!this.nomComp.equals(other.nomComp))){
返回false;
}
返回true;
}
公共作废集合地块(集合地块){
this.parcs=parcs;
}
}
现在,ComplexeDaoImpl.java

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Complexe generated by hbm2java
 */
@Entity
@Table(name="COMPLEXE"
    ,schema="PROJET"
)
public class Complexe  implements java.io.Serializable {


     private String nomComp;
     private ZoneParc zoneParc;
     private Set<Parc> parcs = new HashSet<Parc>(0);

    public Complexe() {
    }


    public Complexe(String nomComp) {
        this.nomComp = nomComp;
    }
    public Complexe(String nomComp, ZoneParc zoneParc, Set<Parc> parcs) {
       this.nomComp = nomComp;
       this.zoneParc = zoneParc;
       this.parcs = parcs;
    }

     @Id 

    @Column(name="NOM_COMP", unique=true, nullable=false, length=30)
    public String getNomComp() {
        return this.nomComp;
    }

    public void setNomComp(String nomComp) {
        this.nomComp = nomComp;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="NOM_ZONEE")
    public ZoneParc getZoneParc() {
        return this.zoneParc;
    }

    public void setZoneParc(ZoneParc zoneParc) {
        this.zoneParc = zoneParc;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="complexe")
    public Set<Parc> getParcs() {
        return this.parcs;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nomComp != null ? nomComp.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Complexe)) {
            return false;
        }
        Complexe other = (Complexe) object;
        if ((this.nomComp == null && other.nomComp != null) || (this.nomComp != null && !this.nomComp.equals(other.nomComp))) {
            return false;
        }
        return true;
    }

    public void setParcs(Set<Parc> parcs) {
        this.parcs = parcs;
    }
}
    import config.HibernateUtil;
    import fr.code.parc.model.Complexe;
    import java.util.List;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

    /**
     *
     * @author raddaouirami
     */
    public class ComplexeDaoImpl implements ComplexeDao{

        @Override
        public List<Complexe> list() {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            List complexes = session.createQuery("from Complexe").list();
            t.commit();
            return complexes;
        }

        @Override
        public Complexe getComplexe(String nomComp) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            return (Complexe) session.load(Complexe.class, nomComp);
        }

        @Override
        public void save(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.save(complexe);
            t.commit();
        }

        @Override
        public void update(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.update(complexe);
            t.commit();
        }

        @Override
        public void remove(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.delete(complexe);
            t.commit();
        }


    }
import fr.code.parc.dao.ComplexeDao;
import fr.code.parc.dao.ComplexeDaoImpl;
import fr.code.parc.model.Complexe;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author raddaouirami
 */

@ManagedBean
@SessionScoped
public class ComplexeController {

    private Complexe complexe;
    private DataModel listeComplexes;
    private int selectedItemIndex;


    /**
     * Creates a new instance of ComplexeController
     */
    public ComplexeController() {
        complexe = new Complexe();
    }
    /* public Complexe getSelected() {
        if (complexe == null) {
            complexe = new Complexe();
            selectedItemIndex = -1;
        }
        return complexe;
    }*/

    public DataModel getListeComplexes() {
        List<Complexe> liste = new ComplexeDaoImpl().list();
        listeComplexes = new ListDataModel(liste);
        return listeComplexes;
}

    /**
     * @return the complexe
     */
    public Complexe getComplexe() {
        return complexe;
    }

    /**
     * @param complexe the complexe to set
     */
    public void setComplexe(Complexe complexe) {
        this.complexe = complexe;
    }


    public String preparationAddComplexe(){
        setComplexe(new Complexe());
        return "test";
}
    public String preparationEditComplexe(){
        setComplexe((Complexe)(getListeComplexes().getRowData()));
        return "test";
}

    public String DeleteComplexe(){
        Complexe complexes = (Complexe)(getListeComplexes().getRowData());
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.remove(complexes);
        return "complexe";
    }
    public String SaveComplexe(){
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.save(getComplexe());
        return "complexe";
    }
    public String UpdateComplexe(){
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.update(complexe);
        return "complexe";
    }    
}
import config.HibernateUtil;
导入fr.code.parc.model.Complexe;
导入java.util.List;
导入org.hibernate.Session;
导入org.hibernate.Transaction;
/**
*
*@作者raddaouirami
*/
公共类ComplexeDaoImpl实现ComplexeDao{
@凌驾
公开名单(){
Session Session=HibernateUtil.getSessionFactory().openSession();
事务t=session.beginTransaction();
List complex=session.createQuery(“来自Complexe”).List();
t、 提交();
返回复合体;
}
@凌驾
公共Complexe getComplexe(字符串nomComp){
Session Session=HibernateUtil.getSessionFactory().openSession();
return(Complexe)session.load(Complexe.class,nomComp);
}
@凌驾
公共无效保存(Complexe Complexe){
Session Session=HibernateUtil.getSessionFactory().openSession();
事务t=session.beginTransaction();
session.save(complexe);
t、 提交();
}
@凌驾
公共无效更新(Complexe Complexe){
Session Session=HibernateUtil.getSessionFactory().openSession();
事务t=session.beginTransaction();
会话更新(complexe);
t、 提交();
}
@凌驾
公共无效删除(Complexe Complexe){
Session Session=HibernateUtil.getSessionFactory().openSession();
事务t=session.beginTransaction();
删除(complexe);
t、 提交();
}
}
最后是ComplexeController.java

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Complexe generated by hbm2java
 */
@Entity
@Table(name="COMPLEXE"
    ,schema="PROJET"
)
public class Complexe  implements java.io.Serializable {


     private String nomComp;
     private ZoneParc zoneParc;
     private Set<Parc> parcs = new HashSet<Parc>(0);

    public Complexe() {
    }


    public Complexe(String nomComp) {
        this.nomComp = nomComp;
    }
    public Complexe(String nomComp, ZoneParc zoneParc, Set<Parc> parcs) {
       this.nomComp = nomComp;
       this.zoneParc = zoneParc;
       this.parcs = parcs;
    }

     @Id 

    @Column(name="NOM_COMP", unique=true, nullable=false, length=30)
    public String getNomComp() {
        return this.nomComp;
    }

    public void setNomComp(String nomComp) {
        this.nomComp = nomComp;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="NOM_ZONEE")
    public ZoneParc getZoneParc() {
        return this.zoneParc;
    }

    public void setZoneParc(ZoneParc zoneParc) {
        this.zoneParc = zoneParc;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="complexe")
    public Set<Parc> getParcs() {
        return this.parcs;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nomComp != null ? nomComp.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Complexe)) {
            return false;
        }
        Complexe other = (Complexe) object;
        if ((this.nomComp == null && other.nomComp != null) || (this.nomComp != null && !this.nomComp.equals(other.nomComp))) {
            return false;
        }
        return true;
    }

    public void setParcs(Set<Parc> parcs) {
        this.parcs = parcs;
    }
}
    import config.HibernateUtil;
    import fr.code.parc.model.Complexe;
    import java.util.List;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

    /**
     *
     * @author raddaouirami
     */
    public class ComplexeDaoImpl implements ComplexeDao{

        @Override
        public List<Complexe> list() {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            List complexes = session.createQuery("from Complexe").list();
            t.commit();
            return complexes;
        }

        @Override
        public Complexe getComplexe(String nomComp) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            return (Complexe) session.load(Complexe.class, nomComp);
        }

        @Override
        public void save(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.save(complexe);
            t.commit();
        }

        @Override
        public void update(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.update(complexe);
            t.commit();
        }

        @Override
        public void remove(Complexe complexe) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction t = session.beginTransaction();
            session.delete(complexe);
            t.commit();
        }


    }
import fr.code.parc.dao.ComplexeDao;
import fr.code.parc.dao.ComplexeDaoImpl;
import fr.code.parc.model.Complexe;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author raddaouirami
 */

@ManagedBean
@SessionScoped
public class ComplexeController {

    private Complexe complexe;
    private DataModel listeComplexes;
    private int selectedItemIndex;


    /**
     * Creates a new instance of ComplexeController
     */
    public ComplexeController() {
        complexe = new Complexe();
    }
    /* public Complexe getSelected() {
        if (complexe == null) {
            complexe = new Complexe();
            selectedItemIndex = -1;
        }
        return complexe;
    }*/

    public DataModel getListeComplexes() {
        List<Complexe> liste = new ComplexeDaoImpl().list();
        listeComplexes = new ListDataModel(liste);
        return listeComplexes;
}

    /**
     * @return the complexe
     */
    public Complexe getComplexe() {
        return complexe;
    }

    /**
     * @param complexe the complexe to set
     */
    public void setComplexe(Complexe complexe) {
        this.complexe = complexe;
    }


    public String preparationAddComplexe(){
        setComplexe(new Complexe());
        return "test";
}
    public String preparationEditComplexe(){
        setComplexe((Complexe)(getListeComplexes().getRowData()));
        return "test";
}

    public String DeleteComplexe(){
        Complexe complexes = (Complexe)(getListeComplexes().getRowData());
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.remove(complexes);
        return "complexe";
    }
    public String SaveComplexe(){
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.save(getComplexe());
        return "complexe";
    }
    public String UpdateComplexe(){
        ComplexeDao dao = new ComplexeDaoImpl();
        dao.update(complexe);
        return "complexe";
    }    
}
导入fr.code.parc.dao.ComplexeDao;
导入fr.code.parc.dao.ComplexeDaoImpl;
导入fr.code.parc.model.Complexe;
导入java.util.List;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.SessionScoped;
导入javax.faces.model.DataModel;
导入javax.faces.model.ListDataModel;
/**
*
*@作者raddaouirami
*/
@ManagedBean
@会议范围
公共类ComplexeController{
私人复合体;
私有数据模型;
私有int-selectedItemIndex;
/**
*创建ComplexeController的新实例
*/
公共ComplexeController(){
complexe=新的complexe();
}
/*公共Complexe getSelected(){
if(complexe==null){
complexe=新的complexe();
selectedItemIndex=-1;
}
返回复数;
}*/
公共数据模型getListComplements(){
List liste=new ComplexeDaoImpl().List();
ListComplements=新的ListDataModel(liste);
回报率;
}
/**
*@返回complexe
*/
公共Complexe getComplexe(){
返回复数;
}
/**
*@param complexe要设置的complexe
*/
公共void setComplexe(Complexe Complexe){
this.complexe=complexe;
}
公共字符串preparationAddComplexe(){
setComplexe(新Complexe());
返回“测试”;
}
公共字符串preparationEditComplexe(){
setComplexe((Complexe)(getListComplexes().getRowData());
返回“测试”;
}
公共字符串DeleteComplexe(){
Complexe complexes=(Complexe)(getListComplexes().getRowData());
ComplexeDao=new ComplexeDaoImpl();
移除(复合物);
返回“complexe”;
}
公共字符串SaveComplexe(){
@ManagedBean(name="myBean")
public class ComplexeController{
....
}
#{myBean}
action="#{complexeController.saveComplexe}"
action="#{ComplexeController.saveComplexe}"