2017-08-16 1 views
1

Je souhaite vérifier un champ usernameTxt en forme avec bootstrap ci-dessous, avec une référence à BalusC answer et Aleksei Loginov answerrendu conditionnellement composant sur la présence d'un message d'objet spécifique

<div class="form-group"> 
       <label class="control-label col-sm-2" for="usernameTxt">Fullname(*):</label> 
       <div class="col-sm-10"> 
        <h:inputText type="text" class="form-control" id="usernameTxt" 
         a:placeholder="Enter your name" required="true" 
         requiredMessage="Fullname is required" 
         value="#{data.personalInformation.username}"></h:inputText> 
        <h:panelGroup layout="block" rendered="#{not empty facesContext.getMessageList('usernameTxt')}" class="alert alert-danger"> 
         <h:message for="usernameTxt"></h:message> 
        </h:panelGroup> 
       </div> 
      </div> 

Le souhait est que si le texte d'entrée est vide, il rend le bloc <h:panelGroup>, et le résultat devrait être comme enter image description here

(Cette photo est quand je supprime la condition not dans le rendered propriété). Je ne peux pas rendre le bloc rendu conditionnellement correctement. Y a-t-il une syntaxe dans la condition de rendu, ou ai-je oublié quelque chose ici?

+0

S'il vous plaît lire également ceci: https://stackoverflow.com/questions/14790014/ajax-update-render-does -non-travail-sur-un-composant-qui-a-rendu-l'attribut – Kukeltje

Répondre

1

Le problème est résolu.

Il me faut une journée entière pour découvrir que l'usernameTxt réelle id page a été rendu et il est pas comme ce que j'attendais

enter image description here

donc je dois changer la condition de retour à

<h:panelGroup layout="block" 
         rendered="#{not empty facesContext.getMessageList('form:j_id_9:useridTxt')}" 
         class="alert alert-danger"> 
         <h:message for="useridTxt"></h:message> 
        </h:panelGroup> 

et il a résolu mon problème