2011-01-26 15 views
5

मैं संदेश में लेबल विशेषता प्रदर्शित करना चाहते हैं परम क्योंकिJSF inputText और validateRegexPatter

`javax.faces.validator.RegexValidator.NOT_MATCHED={0}: Valore non valido` 

में {0} के साथ प्रतिस्थापित किया गया है रेगेक्स पैटर्न। जबकि, मैं लेबल मान को प्रदर्शित करना चाहता हूं। मेरा समाधान काम नहीं करता है मैं इसे कैसे कर सकता हूं?

उत्तर

6

मुझे लगता है कि आप Mojarra का उपयोग कर रहे हैं, क्योंकि javax.faces.validator.RegexValidator के स्रोत की जांच कर रहा है, मुझे पता है कि सत्यापन संदेश का सर्वो केवल पैटर्न है, लेबल कभी भी संदेश फ़ॉर्मेटर को पास नहीं किया जाता है और आप नहीं कर सकते इसे अपने स्वयं के कस्टम संदेशों में उपयोग करें।

//From javax.faces.validator.RegexValidator source 
if (!matcher.matches()) { 
    Object[] params = { regex }; 
    fmsg = MessageFactory.getMessage(locale, NOT_MATCHED_MESSAGE_ID, params); 
    throw new ValidatorException(fmsg); 
} 

माईफैस स्रोतों में, ऐसा लगता है कि वे पैटर्न और लेबल दोनों पास करते हैं।

कम से कम दो सरल विकल्प हैं: MyFaces का उपयोग करें या अपने इनपुट घटक के वैधकर्ता मैसेज विशेषता का बेहतर उपयोग करें।

सत्यापनकर्ता संदेश विवरण एक वैल्यूएक्सप्रेस सक्षम विशेषता है, यदि मौजूद है, तो वैधकर्ता संदेश के पाठ के रूप में उपयोग किया जाएगा, वैधकर्ता से आने वाले किसी भी संदेश को प्रतिस्थापित करता है।

<h:inputText id="email" label="#{sW.email}" 
     value="#{contattiBean.contatto.email}" 
     required="true" validatorMessage="#{sW.email} is not valid"> 
      <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"/> 
</h:inputText>