2014-02-21 5 views
0

Я хочу вызвать метод из managedbean в jsf, но я получаю ту же ошибку. Прежде чем я не получил эту ошибку. Вот мой метод и вызов в 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 как часть метода, как сказал Джулиан. ваша командаLink пытается вызвать kmb.veriSil без аргументов - таким образом, вы не найдете свой метод. Посмотрите, как вы получаете доступ к персоналу и видите, лучше ли вам изменить подпись действия. – VeenarM

Смежные вопросы