2013-01-14 98 views
0

我有這個非常簡單的頁面,這讓我瘋狂。 基本上我有2個按鈕調用方法上一個bean,但不會給他們打電話,每次我得到:Jsf頁面無法調用bean的方法

javax.el.MethodNotFoundException:/vues/vehicule/creationVehicule.xhtml @ 49,94行動=」未找到方法:#{} creationVehicule.creer「[email protected].creer()

這是我的控制器(我刪除了進口)

@Getter 
@Setter 
@ManagedBean(name = "creationVehicule") 
@ViewScoped 
public class CreationVehiculeBean implements Serializable{ 
    // 
    private static final long serialVersionUID = 4790600937909196533L; 
    private String immatriculation; 
    private Date dateAchat; 
    private String marque; 
    private String modele; 
    private String kilometrage; 
    private String puissance; 
    private String etat; 

    private VehiculeService vehiculeService = new VehiculeDelegate(); 

    public void creer() throws Exception{ 
     Vehicule v = new Vehicule(); 
     v.setImmatriculation(immatriculation); 
     v.setKilometrage(kilometrage); 
     v.setMarque(marque); 
     v.setModele(modele); 
     v.setPuissance(puissance); 
     v.setEtat("etat"); 
     v.setDateAchat(dateAchat); 
     int id = vehiculeService.create(v); 

     FacesContext.getCurrentInstance().getExternalContext().redirect("/web-office/vue/vehicule/rechercherContrat.xhtml&id="+Integer.toString(id)); 
    } 

    public String annuler(){ 
     return "/vues/vehicule/rechercheVehicule?faces-redirect=true"; 
    } 

} 

這是我的看法

<!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:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:cogepat="http://cogepat.com/facelets" 
    xmlns:rich="http://richfaces.org/rich" 
    xmlns:ccc="http://java.sun.com/jsf/composite/compositeForms" 
    xmlns:cccg="http://java.sun.com/jsf/composite/compositeGeneral"> 

<ui:composition template="/templates/template.xhtml"> 
    <ui:param name="module" value="vehicules" /> 
    <ui:define name="title"> 
     #{msg.CreerUnProduit} 
    </ui:define> 

    <ui:define name="titreModule"> 
     #{msg.GestionVehicule} 
    </ui:define> 

    <ui:define name="onglets"> 
     <ul> 
      <li> 
       <a class="tab" href="#{facesContext.externalContext.requestContextPath}/vues/vehicule/rechercheVehicule.xhtml">#{msg.RechercherUnVehicule}</a> 
      </li> 
      <li> 
       <a class="selectedTab" href="#{facesContext.externalContext.requestContextPath}/vues/vehicule/creationVehicule.xhtml">#{msg.CreerUnVehicule}</a> 
      </li> 
     </ul> 
    </ui:define> 

    <ui:define name="nav"> 
     <h:form> 
      <h:commandLink id="link1" value="#{msg.vehicules}" action="rechercheVehicule.xhtml" /> 
       >#{msg.creation} 
     </h:form> 
    </ui:define> 


    <ui:define name="titreOnglet"> 
     #{msg.FormCreationVehicule} 
    </ui:define> 

    <ui:define name="corpsContenu"> 
     <ccc:formVehicule bean="#{creationVehicule}" /> 
     <div class="boutons"> 
       <h:commandButton type="submit" value="#{msg.creer}" action="#{creationVehicule.creer}" /> 
       <h:commandButton type="submit" value="#{msg.annuler}" action="#{creationVehicule.annuler}" /> 
     </div> 
     <br/><br/> 
    </ui:define> 

</ui:composition> 
</html> 

因此,當我點擊其中一個按鈕時,出現錯誤。 這很奇怪,因爲我以相同的方式從其他頁面調用其他頁面中的方法。

the buttons

任何想法? 謝謝。

我使用的是JDK 6u35, RichFaces的4.2.1.Final, 的Tomcat 7, 和JSF 2.1.6

回答

1

看再次在異常消息,然後特別是在類名:

[email protected].creer() 

這不是您掌握的CreationVehiculeBean類的FQN。這表明您有另一個託管bean類ModificationVehiculeBean,它使用完全相同的託管bean名稱,並且在類加載中具有優先級,和/或是託管bean註冊中的最後一個。

ModificationVehiculeBean類一個不同的託管bean名稱應該可以解決這個問題。

+0

哦上帝,copyNpaste錯誤。你是上帝。 但是我的辯護從我開始起就已經過了13個小時:p。 非常感謝= D。 – Eildosa

+0

不客氣。 – BalusC