[JAVA] Que faire lorsque la méthode n'est pas trouvée dans f: ajax

Événement: lorsque j'ai essayé d'exécuter f: ajax, une erreur s'est produite sur la console et cela n'a pas fonctionné.

--Environnement - 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

Journal de la console Eclipse


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)
...réduction...

UploadBean.java


...réduction...
    public void uploadFile(FacesContext fc, UIComponent uic, Object value) throws IOException {
        if (!isUpload()) {
...réduction...

base.xhtml


...réduction...
<f:ajax event="change" execute="uploadArea" render="uploadArea" listener="#{uploadBean.uploadFile}" />
...réduction...

Cause: les paramètres de la méthode sont différents (surcharge)

"Les paramètres de méthode sont différents" = "Different method" = "Aucune méthode n'est spécifiée dans l'attribut d'écoute" Quand j'ai essayé diverses choses ... par inadvertance ... quand j'y ai pensé, c'était naturel, mais il s'est avéré être "euh?"

Contre-mesure 1: faites correspondre non seulement le nom de la méthode, mais aussi l'argument avec l'attribut d'écoute

UploadBean.java


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

Si vous recevez javax.faces.event.AjaxBehaviorEvent, vous pouvez obtenir le contexte Faces avec getFacesContext.

AjaxBehaviorEvent représente le comportement des composants spécifiques à Ajax). AjaxBehaviorEvent (API de spécification Jakarta EE 8) --Javadoc Japanese translation

Contre-mesure 2: ajouter un argument à la méthode spécifiée dans l'attribut d'écoute

base.xhtml


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

Recommended Posts

Que faire lorsque la méthode n'est pas trouvée dans f: ajax
Que faire lorsque la méthode n'est pas trouvée dans f: ajax
Que faire lors du débogage "Source non trouvée"
Que faire lorsque la méthode non définie ʻuser_signed_in? '
Que faire lorsque les modifications du servlet ne sont pas reflétées
Que faire si IllegalStateException se produit dans PlayFramework
Que faire lorsque les balises JSF ne deviennent pas HTML
<f: ajax> Impossible d'attacher <f: ajax> à un non-ClientBehaviorHolder Que faire lorsque vous devenez parent
Que faire lorsque vous ne pouvez pas appliquer d'opérateurs d'expression à la liaison de méthode
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Que faire si une exception UnsupportedCharsetException se produit dans un JRE léger
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
[Rails] Que faire lorsque les rails ne répondent pas ou ne s'arrêtent pas
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit
Ne pas revenir lors de la prise de notes en Ruby
Que faire lorsque la "relation" hibernate_sequence "n'existe pas" dans la colonne ID de PostgreSQL + JPA
Que faire lorsque vous souhaitez connaître la position source où la méthode est définie dans binding.pry
Que faire lorsque javax.el.ELException: Pas une expression de méthode valide: s'affiche lorsque l'écran JSF est affiché
Que faire lorsque le préfixe c n'est pas lié dans JSP
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Que faire si le processus Tomcat reste lorsque vous arrêtez Tomcat dans Eclipse
Remarques sur la marche à suivre lorsqu'une exception WebView ClassNotFoundException se produit dans JavaFX 12
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Qu'utilisez-vous lors de la conversion en String?
Que faire lorsque vous pensez que vous ne pouvez pas Groovy-> Java avec IntelliJ IDEA CE
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR
Que faire lorsque la valeur devient nulle dans le second getSubmittedValue () dans JSF Validator
[Grails] Une erreur s'est produite lors de l'exécution Que faire lorsque la CLI Grails ne démarre pas
Que faire quand est invalide car il ne commence pas par un "-"
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
Que faire lorsque le certificat SSL a expiré
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Erreur ExecJS :: RuntimeUnavailable: que faire quand cela se produit
ParseException: que faire lorsqu'une date impossible à analyser est atteinte
[React.useRef] Que faire lorsque le dernier état ne peut pas être référencé dans l'écouteur d'événements
Que faire lorsque «Échec du chargement de la bibliothèque partagée JNI» s'affiche dans Eclipse
Que faire lorsque l'adresse déjà utilisée est affichée après l'exécution des rails
Que faire lorsque les paramètres de routage ne fonctionnent pas après la création d'un environnement Docker avec Laravel
Que faire lorsque «Impossible de trouver» dans l’une des sources apparaît dans l’environnement de développement avec Docker × Rails × RSpec
Que faire quand il devient impossible de trouver CDI BeanManager.
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire si le référentiel Git ne peut pas être affiché dans Azure Team Explorer pour Eclipse
Que faire lorsque vous ne pouvez pas formater l'objet donné en tant que date dans JSF convertDateTime
Que vérifier lorsque rails db: la migration ne réussit pas
Que faire si FacesMessage est défini mais pas affiché
[Ruby / Rails] Que faire lorsque NoMethodError apparaît lors de l'utilisation d'une méthode destructive comme le filtre!
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
Bluemix Infrastructure VPN ne se connecte pas car il ne prend pas en charge NPAPI! Que faire quand [Mac]
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
[Rails] Que faire lorsque l'erreur Aucune base de données sélectionnée et Base de données inconnue apparaît dans db: migrate