[JAVA] Que faire si FacesMessage est défini mais pas affiché

Événement: le message ne s'affiche pas même si FacesMessage est défini comme contenu.

Exécutez la méthode avec ajax


  <h:form id="formId">
    <div id="uploadArea">
<!--...réduction...-->
          <f:ajax event="change" execute="uploadArea" render="uploadArea" listener="#{uploadBean.uploadFile}" />
<!--...réduction...-->
      <div>
        <h:message for="uploadArea" errorClass="error" warnClass="warn" infoClass="info" />
      </div>
    </div>
  </h:form>

J'ai défini un message comme contenu dans une méthode, mais il n'apparaît pas


    public void uploadFile(AjaxBehaviorEvent event) throws IOException {
        if (!isUpload()) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "", "Aucun fichier n'a été sélectionné.");
            event.getFacesContext().addMessage("uploadArea", message);
//...réduction...

HTML de sortie


<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
  <input type="hidden" name="formId" value="formId">
  <div id="uploadArea">
<!--...réduction...-->
    <input id="formId:file" type="text" name="formId:file" style="display:none;" onchange="mojarra.ab(this,event,'change','uploadArea','uploadArea')">
    <div>
    </div>
  </div>
  <input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-7689768516583343150:2206148480801750608" autocomplete="off">
</form>

Cause: Inconnu (veuillez me le dire.)

Apparemment, il n'a pas réapparu après l'exécution de la méthode f: ajax. render =" uploadArea " ... a été ignoré? La balise HTML est-elle inutile? Ne devrait-il pas s'agir d'une balise JSF? Quelque chose qui n'est pas écrit dans les balises JSF n'est-il pas un composant?

The clientIds of components that will participate in the "render" portion of the Request Processing Lifecycle. ajax(JSF 2.2 View Declaration Language: Facelets Variant)

Solution: remplacez la balise div par h: panelGroup

Exécutez la méthode avec ajax


  <h:form id="formId">
    <h:panelGroup id="uploadArea">
<!--...réduction...Puisqu'il s'agit d'une balise JSF, faites-en l'attribut id spécifié..-->
          <f:ajax event="change" execute="formId:uploadArea" render="formId:uploadArea" listener="#{uploadBean.uploadFile}" />
<!--...réduction...-->
      <div>
        <h:message for="formId:uploadArea" errorClass="error" warnClass="warn" infoClass="info" />
      </div>
    </div>
  </h:form>

S'affiche lors de la définition d'un message comme contenu dans une méthode


    public void uploadFile(AjaxBehaviorEvent event) throws IOException {
//...réduction...Comme avant la correspondance...Changer uniquement l'attribut id spécifié...
            event.getFacesContext().addMessage("formId:uploadArea", message);
//...réduction...Comme avant la correspondance...

Recommended Posts

Que faire si FacesMessage est défini mais pas affiché
[Ubuntu 20.04] Que faire si le moniteur externe n'est pas reconnu
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
Que faire si l'image d'arrière-plan n'est pas appliquée après le déploiement
Que faire lorsque le préfixe c n'est pas lié dans JSP
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire si le point d'arrêt est grisé et ne s'arrête pas pendant le débogage
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Remarques sur la marche à suivre si le Jar de dépendance Eclipse Maven est incorrect
[Logback] Que faire si les fichiers inutiles ne disparaissent pas pendant la rotation
[Spring Boot] Que faire si une exception HttpMediaTypeNotAcceptableException se produit sur un point de terminaison pour lequel produit est défini
[Java] Que faire si un grand nombre de "Le fichier est trop ouvert" s'affiche en raison de FileNotFoundException
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
Que faire lorsque javax.el.ELException: Pas une expression de méthode valide: s'affiche lorsque l'écran JSF est affiché
Que faire lorsque "npm ERR! Code ENOSELF" s'affiche après l'installation de npm
Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)
Remarques sur ce qu'il faut faire lorsque EC2 est configuré avec t2.micro
Que faire si le processus Tomcat reste lorsque vous arrêtez Tomcat dans Eclipse
Que faire si le serveur Tomcat meurt
Que faire si vous transmettez des informations incorrectes
Que faire si l'archétype mvn: générer échoue
Que faire lors du débogage "Source non trouvée"
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR
Que faire quand est invalide car il ne commence pas par un "-"
[Rails] Que faire lorsque l'image Refile n'est pas affichée lors de l'écriture du traitement au moment de l'erreur de routage
Que faire si l'installation du gem de débogage échoue
Que faire si le serveur Rails ne peut pas démarrer
Que faire lorsque les balises JSF ne deviennent pas HTML
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Que faire si le serveur rails ne peut pas être arrêté
Que faire si TextToSpeech ne fonctionne pas sur Android 11
Que faire si vous créez accidentellement un modèle
Que faire si une erreur ActionController :: UnknownFormat se produit
ParseException: que faire lorsqu'une date impossible à analyser est atteinte
Que faire si la mise à jour ne prend pas effet après le déploiement de Rails AWS
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 si l'annotation JSON Hint ne fonctionne pas avec Lombok et JSONIC
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire lorsque la méthode n'est pas trouvée dans f: ajax
[Maven] Que faire si on vous demande d’incorporer dans la guerre un fichier jar qui n’est pas dans le référentiel distant
Je veux FlashAttribute au printemps même si j'ai défini un proxy inverse! (ne pas faire)
Introduction à Ratpack (1) - Qu'est-ce que Ratpack?
Que faire si la commande adb ne peut pas être exécutée
Que faire si mysql2 obtient une erreur d'installation de bundle
[Rails] fields_for n'est pas affiché
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
Que faire si la commande rails devient inutilisable
Que faire à propos de l'erreur "Impossible de lire ou n'est pas un fichier ZIP valide"
Que faire quand git status indique Modifications non préparées pour la validation: après git add.
Que faire si vous obtenez une erreur gcc dans Docker
Que faire lorsque la validation ne fonctionne pas avec l'action de mise à jour