2011-01-26 13 views
5

i mesajında ​​etiket özelliğini göstermek istediğiniz paramMTU inputText ve validateRegexPatter

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

{0} ile ikame edilir, çünkü regex deseni. Bununla birlikte, etiket değerini görüntülemek için ne. Çözümüm çalışmıyor, nasıl yapabilirim?

cevap

6

Sanırım Mojarra'yı kullanıyorsunuz, çünkü javax.faces.validator.RegexValidator kaynağının kontrol edildiğini onaylama mesajının param olduğunu fark ettim, sadece desen, etiket hiçbir zaman mesaj biçimlendiricisine geçmez ve kendi özel mesajlarınızda kullanın. MyFaces kaynaklarda

//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); 
} 

, onlar desen ve etiketi hem geçmesi yapmak anlaşılmaktadır.

En az iki basit seçenek vardır: MyFaces kullanın veya giriş bileşeninizin validatorMessage özniteliğini daha iyi kullanın.

validatorMessage açıklama mevcutsa, doğrulayıcı gelen herhangi bir iletiyi yerine doğrulayıcı mesajın metni olarak kullanılacak, yani A ValueExpression etkin özelliğidir.

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