[JAVA] Was tun, wenn die Methode in f: ajax nicht gefunden wurde?

Ereignis: Beim Versuch, f: ajax auszuführen, ist auf der Konsole ein Fehler aufgetreten, der nicht funktioniert hat.

--Umgebung - CentOS Linux release 7.8.2003 (Core) - Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0) - openjdk version "11.0.7" 2020-04-14 LTS - JSF 2.3.9

Eclipse-Konsolenprotokoll


javax.el.MethodNotFoundException: /base.xhtml @17,113 listener="#{uploadBean.uploadFile}": Method not found: class brans.UploadBean.uploadFile(javax.faces.event.AjaxBehaviorEvent)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:69)
    at com.sun.faces.facelets.tag.jsf.core.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxHandler.java:403)
    at javax.faces.event.AjaxBehaviorEvent.processListener(AjaxBehaviorEvent.java:100)
    at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:82)
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:481)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:847)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1395)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:58)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
    at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:707)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451)
...Kürzung...

UploadBean.java


...Kürzung...
    public void uploadFile(FacesContext fc, UIComponent uic, Object value) throws IOException {
        if (!isUpload()) {
...Kürzung...

base.xhtml


...Kürzung...
<f:ajax event="change" execute="uploadArea" render="uploadArea" listener="#{uploadBean.uploadFile}" />
...Kürzung...

Ursache: Die Methodenparameter sind unterschiedlich (Überlastung)

"Methodenparameter sind unterschiedlich" = "Unterschiedliche Methode" = "Im Listener-Attribut ist keine Methode angegeben" Als ich verschiedene Dinge ausprobierte ... versehentlich ... als ich darüber nachdachte, war es natürlich, aber es stellte sich heraus, dass es "äh?"

Gegenmaßnahme 1: Ordnen Sie nicht nur den Methodennamen, sondern auch das Argument dem Listener-Attribut zu

UploadBean.java


    public void uploadFile() throws IOException {
//Oder
    public void uploadFile(AjaxBehaviorEvent event) throws IOException {

Wenn Sie javax.faces.event.AjaxBehaviorEvent erhalten, können Sie den Faces-Kontext mit getFacesContext abrufen.

AjaxBehaviorEvent repräsentiert das Verhalten von Ajax-spezifischen Komponenten. AjaxBehaviorEvent (Jakarta EE 8 Specification API) - Japanische Übersetzung von Javadoc

Gegenmaßnahme 2: Fügen Sie der im Listener-Attribut angegebenen Methode ein Argument hinzu

base.xhtml


<f:ajax event="change" execute="uploadArea" render="uploadArea" listener="#{uploadBean.uploadFile(hoge, fuga, value)}" />

Recommended Posts

Was tun, wenn die Methode in f: ajax nicht gefunden wurde?
Was tun, wenn die Methode in f: ajax nicht gefunden wurde?
Was tun beim Debuggen von "Quelle nicht gefunden"?
undefinierte Methode Was tun, wenn Sie "user_signed_in" erhalten?
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
Was tun, wenn JSF-Tags nicht zu HTML werden?
<f: ajax> <f: ajax> kann nicht an Nicht-ClientBehaviorHolder angehängt werden. Was tun, wenn Sie Eltern werden?
Was ist zu tun, wenn Ausdrucksoperatoren nicht auf die Methodenbindung angewendet werden können?
Was tun, wenn eine javax.batch.operations.JobStartException auftritt?
Was tun, wenn in einer Lightweight-JRE eine UnsupportedCharsetException auftritt?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
[Schienen] Was tun, wenn Schienen nicht reagieren oder nicht anhalten?
Was tun, wenn eine javax.el.PropertyNotWritableException auftritt?
Kehren Sie nicht zurück, wenn Sie Notizen in Ruby machen
Was tun, wenn "Relation" hibernate_sequence "nicht existiert" in der ID-Spalte von PostgreSQL + JPA
Was tun, wenn Sie die Quellposition wissen möchten, an der die Methode in bind.pry definiert ist?
Was tun, wenn javax.el.ELException: Kein gültiger Methodenausdruck: wird angezeigt, wenn der JSF-Bildschirm angezeigt wird
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
Was tun, wenn der Tomcat-Prozess bestehen bleibt, wenn Sie Tomcat in Eclipse stoppen?
Hinweise zur Vorgehensweise beim Auftreten einer WebView ClassNotFoundException in JavaFX 12
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Was verwenden Sie beim Konvertieren in String?
Was tun, wenn Sie glauben, dass Sie mit IntelliJ IDEA CE nicht Groovy-> Java können?
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn der Wert im zweiten getSubmittedValue () in JSF Validator null wird?
[Grails] Beim Ausführen ist ein Fehler aufgetreten. Was ist zu tun, wenn die Grails-CLI nicht gestartet wird?
Was zu tun ist, wenn es ungültig ist, weil es nicht mit einem '-' beginnt
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
Was tun, wenn das SSL-Zertifikat abgelaufen ist?
Was tun, wenn beim Starten von Tomcat eine ClassNotFoundException auftritt?
Fehler ExecJS :: RuntimeUnavailable: Was tun, wenn es auftritt?
ParseException: Was tun, wenn ein nicht analysierbares Datum erreicht ist?
[React.useRef] Was tun, wenn im Ereignis-Listener nicht auf den neuesten Status verwiesen werden kann?
Was ist zu tun, wenn in Eclipse "Fehler beim Laden der gemeinsam genutzten JNI-Bibliothek" angezeigt wird?
Was tun, wenn die bereits verwendete Adresse nach dem Ausführen der Schienen angezeigt wird?
Was tun, wenn die Routing-Einstellungen nach dem Erstellen einer Docker-Umgebung mit Laravel nicht funktionieren?
Was ist zu tun, wenn in einer der Quellen in der Entwicklungsumgebung mit Docker × Rails × RSpec "Nicht gefunden" angezeigt wird?
Was tun, wenn CDI BeanManager nicht mehr gefunden werden kann?
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Was tun, wenn das Git-Repository nicht im Azure Team Explorer für Eclipse angezeigt werden kann?
Was ist zu tun, wenn ein bestimmtes Objekt in JSF convertDateTime nicht als Datum formatiert werden kann?
Was zu überprüfen ist, wenn Schienen db: Migration nicht bestanden
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
[Ruby / Rails] Was tun, wenn NoMethodError angezeigt wird, wenn eine destruktive Methode wie Filter verwendet wird?
[Rails Tutorial Kapitel 2] Was tun, wenn Sie einen Fehlern im Spaltennamen machen?
Bluemix Infrastructure VPN stellt keine Verbindung her, da NPAPI nicht unterstützt wird! Was tun, wenn [Mac]
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?