2012-10-04 15 views
8

में सशर्त शैली है मेरे पास एच: संदेशों को त्रुटि संदेश प्रदर्शित करने के लिए संदेश हैं, और एक घटक है कि मैं सत्यापन त्रुटि के मामले में अपनी शैली बदलना चाहता हूं (यदि किसी घटक में सत्यापन त्रुटि है या कोई सत्यापन संदेश प्रस्तुत किया गया है तो बदलें इस विशिष्ट घटक की शैली)। JSF : Better way to check for existence of <h:message for="id"/>जेएसएफ

लेकिन मैं एक अधिक सामान्य तरीका चाहते हैं, शैली बदलने के लिए है, तो के रूप में किसी भी घटक वैध, या अन्य में नहीं है:

मैं जिस तरह से करता है, तो घटक सत्यापन त्रुटियों है शैली बदलने के लिए के बारे में पता शब्द किसी भी सत्यापन संदेश प्रस्तुत किया जाता है।

कृपया सलाह दें कि इसे कैसे पूरा किया जाए।

उत्तर

17

आप सामान्य रूप से सत्यापन विफल होने की जांच के लिए FacesContext#isValidationFailed() का उपयोग कर सकते हैं।

<h:outputText ... styleClass="#{facesContext.validationFailed ? 'fail' : 'success'}" /> 

वैकल्पिक रूप से, आप अगर कोई चेहरे संदेशों हैं जाँच करने के लिए FacesContext#getMessageList() उपयोग कर सकते हैं। यह जरूरी नहीं है कि एक सामान्य सत्यापन विफलता हो, अर्थात् वैश्विक/सफल संदेश भी हो सकते हैं जिन्हें क्रिया विधि में जोड़ा गया है।

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />