struts validator not working

Hi i was just trying to use struts validator in my application. when i submit my login page without filling username and password i m not getting the error displayed on jsp page. after sumission it it just coming back to login page itself. On server I am getting an error message. please anybody can help me out.

thanks -- sony

Error on server

18:01:37,093 ERROR [ValidatorForm] org.apache.struts.validator.FieldChecks.valid

ateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.

apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.ser

vlet.http.HttpServletRequest)

org.apache.commons.validator.ValidatorException: org.apache.struts.validator.Fie

ldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.Validat

orAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErr

ors, javax.servlet.http.HttpServletRequest)

at org.apache.commons.validator.ValidatorAction.loadValidationMethod(Val

idatorAction.java:627)

at org.apache.commons.validator.ValidatorAction.executeValidationMethod(

ValidatorAction.java:557)

at org.apache.commons.validator.Field.validateForRule(Field.java:827)

at org.apache.commons.validator.Field.validate(Field.java:906)

at org.apache.commons.validator.Form.validate(Form.java:174)

at org.apache.commons.validator.Validator.validate(Validator.java:367)

at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java

:110)

at org.apache.struts.action.RequestProcessor.processValidate(RequestProc

essor.java:927)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja

va:204)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:119

6)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

icationFilterChain.java:252)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

ilterChain.java:173)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi

lter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

icationFilterChain.java:202)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

ilterChain.java:173)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV

alve.java:213)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV

alve.java:178)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit

yAssociationValve.java:175)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv

e.java:74)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j

ava:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j

ava:105)

at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConne

ctionValve.java:156)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal

ve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav

a:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java

:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p

rocessConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo

int.java:527)

at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWor

kerThread.java:112)

at java.lang.Thread.run(Thread.java:595)

I m using **** struts 1.2.8 and commons-validator 1.1.4

validator-rules.xml

<!DOCTYPE form-validation PUBLIC

"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"

"http://jakarta.apache.org/commons/dtds/validator_1_1.dtd">

<form-validation>

<global>

<validator name="required"

classname="org.apache.struts.validator.FieldChecks"

method="validateRequired"

methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction,

org.apache.commons.validator.Field,

org.apache.struts.action.ActionErrors,

javax.servlet.http.HttpServletRequest"

msg="errors.required">

<javascript><![CDATA[

function validateRequired(form) {

var isValid = true;

var focusField = null;

var i = 0;

var fields = new Array();

oRequired = new required();

for (x in oRequired) {

var field = form[oRequired[x][0]];

if (field.type == 'text' ||

field.type == 'textarea' ||

field.type == 'file' ||

field.type == 'select-one' ||

field.type == 'radio' ||

field.type == 'password') {

var value = '';

// get field's value

if (field.type == "select-one") {

var si = field.selectedIndex;

if (si >= 0) {

value = field.options[si].value;

}

} else {

value = field.value;

}

if (trim(value).length == 0) {

if (i == 0) {

focusField = field;

}

fields[i++] = oRequired[x][1];

isValid = false;

}

}

}

if (fields.length > 0) {

focusField.focus();

alert(fields.join('\n'));

}

return isValid;

}

// Trim whitespace from left and right sides of s.

function trim(s) {

return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );

}

]]>

</javascript>

</validator>

</global>

</form-validation>

login.jsp

<%@ include file="/jsp/header.jsp" %>

<html>

<head>

<link rel="stylesheet" type="text/css" href="css/rentacarUI.css" />

<div class="grokheader"><bean:message key="login.label.title" /></div>

<hr>

<html:errors/>

</head>

<body>

<div class="outer">

<html:form action="loginSave" focus="userName" >

<div class="loginheader"><bean:message key="login.label.login" /></div>

<div class="loginbox">

<table>

</logic:messagesPresent>

<tr>

<td><bean:message key="login.label.username" /></td>

<td><html:text property="userName"/></td>

</tr>

<tr>

<td><bean:message key="login.label.password" /></td>

<td><html:password property="password"/></td>

</tr>

</table>

</div>

<center><html:submit><bean:message key="login.label.submit" /></html:submit></center>

</html:form>

</div>

<div class="footer"></div>

</body>

</html>

<hr>

LoginForm

public class LoginForm extends ValidatorForm {

private String userName="";

private String password="";

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

}

please give me some clue about what will be the cause for this error.........

:)

[7881 byte] By [thomassonya] at [2007-11-26 18:02:37]
# 1

hello sony

c the things clearly

1. enable validator plug in

2. extend ur form bean class from ValidatorForm

3. remove the validate and reset method in teh form bean if any

4. for client side validation

in the jsp file

<html:javascript formName="UR FORMBean's logical name">

also include in the same jsp

<html:form some method="post" then add onsubmit="return ValidateFormbeanname that is used above and its first letter should be capital(this);>

after that use validation.xml file

like this way

<form-validation>

<formset>

<form name="passwordForm">

<field property="currentPwd"

depends="required">

<argkey="changepwdForm.currentpwd"/>

</field>

<field property="newPwd1"

depends="required">

<arg key="changepwdForm.newpwd"/>

</field>

<field property="newPwd2"

depends="required">

<arg key="changepwdForm.confirmpwd"/>

</field>

</form>

<formset>

<form-validation>

then specify these keys in msg resources file as

changepwdForm.currentpwd= Password

same way

u will get it

and for server side validation

use action messages and action errors in the actions classes

bye

rakesh

rakesh_thakura at 2007-7-9 5:32:35 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 2
Check whether your struts validator.jar file dtd and validator .xml dtd are of same versions CheersVarun Rathore
Varun_Rathorea at 2007-7-9 5:32:35 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...