【问题标题】:Method not found JSF 2找不到方法 JSF 2
【发布时间】:2014-02-21 09:52:03
【问题描述】:

我想从 jsf 中的 managedbean 调用一个方法,但我得到了同样的错误。之前我没有得到这个错误。这是我的方法并在 xhtml 中调用。

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"/>

我看不到错误。出了什么问题?

【问题讨论】:

  • 您必须将 Personel 对象作为参数传递给您的操作中的方法。
  • 为什么你的方法中需要一个参数?我没有看到它在任何地方使用
  • Tomcat是否支持带参数调用方法?
  • 这取决于 Tomcat 的版本。为此,您需要 EL 2.2,Tomcat 7 支持开箱即用。否则,您可以自己添加库并替换 Tomcat 的库。
  • 如何替换tomcat一个。我已经下载了el 2.2.jar并添加到项目中。

标签: jsf-2 managed-bean


【解决方案1】:

您似乎正在调用一个需要参数但未指定参数的方法。因此编译器无法匹配您对方法的调用,因为参数是方法签名的一部分。

【讨论】:

  • “参数是方法签名的一部分”那是什么?我必须用参数调用方法,不是吗?
  • 正如 Julian 所说,您有一个 Personel 参数作为方法的一部分。您的 commandLink 正在尝试不带参数调用 kmb.veriSil - 因此找不到您的方法。查看您如何访问人员,看看您是否更好地更改您的操作签名。
猜你喜欢
  • 2017-02-15
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 2019-05-08
  • 2013-06-08
  • 1970-01-01
相关资源
最近更新 更多