Valeu cara!
eu removi o jar do hibernate-validator então, já que vou usar as validações do próprio jsf, com internacionalização.
Fiz o que vc descreveu e ficou legal.
Defini um arquivo jsf-validation.proprieties com os valores
javax.faces.component.UIInput.REQUIRED=Campo obrigatório.
javax.faces.component.UISelectOne.INVALID=O valor não é uma opção válida.
javax.faces.component.UISelectMany.INVALID=O valor não é uma opção válida.
javax.faces.component.UIInput.CONVERSION=O valor informado é Inválido.
javax.faces.component.validator.NOT_IN_RANGE=O valor não está entre {0} e {1}.
javax.faces.validator.DoubleRangeValidator.MAXIMUM=Valor é superior ao máximo permitido.
javax.faces.validator.DoubleRangeValidator.MINIMUM=O valor é inferior a mínima permitida.
javax.faces.validator.DoubleRangeValidator.TYPE=O valor não é do tipo correto.
javax.faces.validator.LengthValidator.MAXIMUM=Entre com o valor minimo de caracteres.
javax.faces.validator.LengthValidator.MINIMUM =Valor maximo de caracteres excedido.
javax.faces.validator.LongRangeValidator.MAXIMUM=Valor é superior ao máximo permitido.
javax.faces.validator.LongRangeValidator.MINIMUM=O valor é inferior ao mínimo permitido.
javax.faces.validator.LongRangeValidator.TYPE=O valor não é do tipo correto.
depois no faces-config.xml
<application>
<message-bundle>jsf-validation</message-bundle>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
</application>
e no meu jsp ta
<h:outputText value="Name:" />
<h:inputText value="#{form_bean.form_name}" id="form_name" required="true">
<rich:ajaxValidator event="onblur" />
</h:inputText>
<rich:message for="form_name" />
e validando certinho.
Mas ta dando um erro quando eu preencho o campo e submeto o valor do campo via commanButton
javax.faces.FacesException: java.util.MissingResourceException: Can't find bundle for base name jsf-validation, locale en
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:675)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:242)
at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:455)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.util.MissingResourceException: Can't find bundle for base name jsf-validation, locale en
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:787)
at org.richfaces.validator.BeanValidator.getCurrentResourceBundle(BeanValidator.java:269)
at org.richfaces.validator.BeanValidator.createValidator(BeanValidator.java:282)
at org.richfaces.validator.BeanValidator.getValidator(BeanValidator.java:249)
at org.richfaces.validator.BeanValidator.validateClass(BeanValidator.java:229)
at org.richfaces.validator.BeanValidator.validateBean(BeanValidator.java:214)
at org.richfaces.validator.BeanValidator.validate(BeanValidator.java:163)
at org.richfaces.validator.BeanValidator$ValidationResolver.setValue(BeanValidator.java:395)
at com.sun.el.parser.AstValue.setValue(AstValue.java:167)
at com.sun.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:273)
at org.richfaces.validator.BeanValidator.validate(BeanValidator.java:119)
at org.richfaces.validator.FacesBeanValidator.validate(FacesBeanValidator.java:79)
at org.richfaces.component.html.HtmlInputText.validateValue(HtmlInputText.java:35)
at javax.faces.component.UIInput.validate(UIInput.java:867)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1065)
at javax.faces.component.UIInput.processValidators(UIInput.java:666)
at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:439)
at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:24)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:672)
... 56 more
executePhase(PROCESS_VALIDATIONS 3,com.sun.faces.context.FacesContextImpl@29e505) threw exception
javax.faces.FacesException: java.util.MissingResourceException: Can't find bundle for base name jsf-validation, locale en
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:108)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: javax.faces.FacesException: java.util.MissingResourceException: Can't find bundle for base name jsf-validation, locale en
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:675)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:681)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:650)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:242)
at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:455)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
... 38 more
Você sabe dizer o motivo?
estou tentando pesquisar aqui, mas por enquanto não achei nada relacionado entro o resourceBundle e o submit do valor do campo. :?