You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Elisa Budelli <el...@gmail.com> on 2007/03/16 14:28:00 UTC
Tomcat6 Validation
Hello, I am using MyFaces version 1.1.5 and Tomcat 6. Everything seems to
work fine except for Validation. In a Backing bean i have the following
method:
public void validateLogin(FacesContext context, UIComponent toValidate,
Object value) throws ValidatorException{
..............
}
int the newUser.xhtml page:
<h:inputText type="text" id="login" value="#{UserBean.loginname}"
size="15" required="true">
<validation value="#{ UserBean.validateLogin}"/>
But when invoking the method that triggers validation i receive always the
following exception:
javax.servlet.ServletException: /pages/newUser.xhtml @17,137
validator="#{UserBean.validateLogin}": Method not found:
web.bean.user.UserBean@1b0bf9a.validateLogin(javax.faces.context.FacesContext,
javax.faces.component.UIComponent, java.lang.Object)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
javax.faces.el.MethodNotFoundException: /pages/newUser.xhtml @17,137
validator="#{UserBean.validateLogin}": Method not found:
web.bean.user.UserBean@1b0bf9a.validateLogin(javax.faces.context.FacesContext,
javax.faces.component.UIComponent, java.lang.Object)
com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:71)
javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:181)
javax.faces.component.UIInput.validateValue(UIInput.java:313)
javax.faces.component.UIInput.validate(UIInput.java:354)
javax.faces.component.UIInput.processValidators(UIInput.java:184)
javax.faces.component.UIForm.processValidators(UIForm.java:73)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:149)
de.mindmatters.faces.lifecycle.ProcessValidationsPhase.executePhase(ProcessValidationsPhase.java:43)
de.mindmatters.faces.lifecycle.AbstractPhase.execute(AbstractPhase.java:37)
de.mindmatters.faces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:166)
de.mindmatters.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:211)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
Any kind of help will be very welcomed.
Thanks
Re: Tomcat6 Validation
Posted by Saul Qunming Yuan <yu...@dataanvil.com>.
Hi,
I doubt the way you use the validator is correct. You can use a "validator" attribute inside the <h:inputText> tag or use <f:validator> as a nested tag.
i.e.,
<h:inputText type="text" id="login" value="#{UserBean.loginname}" size="15" validator="#{UserBean.validateLogin}" required="true" />
or,
<h:inputText type="text" id="login" value="#{UserBean.loginname}" size="15" required="true">
<f:validator validatorId="validatorId.as.defined.in.face_config"/>
you'll need to create a validator class and register the validator in the face-config, if going with the second way.
HTH,
Saul
----- Original Message -----
From: Elisa Budelli
To: users@myfaces.apache.org
Sent: Friday, March 16, 2007 8:28 AM
Subject: Tomcat6 Validation
Hello, I am using MyFaces version 1.1.5 and Tomcat 6. Everything seems to work fine except for Validation. In a Backing bean i have the following method:
public void validateLogin(FacesContext context, UIComponent toValidate, Object value) throws ValidatorException{
..............
}
int the newUser.xhtml page:
<h:inputText type="text" id="login" value="#{UserBean.loginname}" size="15" required="true">
<validation value="#{ UserBean.validateLogin}"/>
But when invoking the method that triggers validation i receive always the following exception:
javax.servlet.ServletException
: /pages/newUser.xhtml @17,137 validator="#{UserBean.validateLogin}": Method not found: web.bean.user.UserBean@1b0bf9a.validateLogin(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object
) javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
javax.faces.el.MethodNotFoundException: /pages/newUser.xhtml @17,137 validator="#{UserBean.validateLogin}": Method not found: web.bean.user.UserBean@1b0bf9a.validateLogin(javax.faces.context.FacesContext, javax.faces.component.UIComponent
, java.lang.Object) com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:71)
javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:181) javax.faces.component.UIInput.validateValue(UIInput.java:313)
javax.faces.component.UIInput.validate(UIInput.java:354) javax.faces.component.UIInput.processValidators
(UIInput.java:184) javax.faces.component.UIForm.processValidators(UIForm.java:73)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627) javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java
:149) de.mindmatters.faces.lifecycle.ProcessValidationsPhase.executePhase(ProcessValidationsPhase.java:43)
de.mindmatters.faces.lifecycle.AbstractPhase.execute(AbstractPhase.java:37) de.mindmatters.faces.lifecycle.LifecycleImpl.executePhase
(LifecycleImpl.java:166) de.mindmatters.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:211)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)Any kind of help will be very welcomed.
Thanks
--------------------------------
Spam/Virus scanning by CanIt Pro
For more information see http://www.kgbinternet.com/SpamFilter.htm
To control your spam filter, log in at http://filter.kgbinternet.com