2014-02-21 47 views
0

我想在jsf中調用一個來自managedbean的方法,但是我得到了同樣的錯誤。在我沒有得到這個錯誤之前。這裏是我的方法,並在xhtml中調用。找不到方法JSF 2

public String veriSil(Personel personel){ 
    msb.baglan(); 
    String sonuc=""; 
    String sql = "DELETE FROM jsfapp.personel WHERE ad='"+personel.getAd()+"' AND soyad='"+personel.getSoyad()+"'"; 
    try { 
     PreparedStatement pstmt = (PreparedStatement) msb.getConnection().prepareStatement(sql); 
     resultSilme = pstmt.execute();    
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    if (!resultSilme) { 
     sonuc += personelad + " " + personelsoyad + " silindi."; 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(sonuc)); 
     return null; 
    } else { 
     sonuc += "Silme işlemi yapılamadı!"; 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(sonuc)); 
     return null; 
    } 

} 

我在jsf中調用;

<h:commandLink action="#{kmb.veriSil}" value="Sil"/> 

我看不到一個錯誤。怎麼了?

+1

您必須將Personel對象作爲參數傳遞給您的操作中的方法。 –

+0

爲什麼你需要一個參數在你的方法?我沒有看到它在任何地方使用 – Adarsh

+0

Tomcat是否支持調用帶參數的方法? – emreturka

回答

3

看來你正在調用一個方法,期望沒有指定參數的參數。因此,編譯器無法將您的調用與方法匹配,因爲參數是方法簽名的一部分。

+0

「參數是方法簽名的一部分」是什麼?我必須用方法來調用方法,不是嗎? – emreturka

+0

你有一個Personel參數作爲方法的一部分,就像Julian說的那樣。您的commandLink正嘗試調用kmb.veriSil而沒有參數 - 因此無法找到您的方法。看看你是如何訪問個人,看看你是否更好地改變你的行動簽名。 – VeenarM