Not able to run validation using validation.xml & validator-rules.xml

Hello Friends,

I am not able to run validation using validation.xml & validator-rules.xml.

Entire code in running prefectly but no error messages are prompted.

Following is my code:

File Name : struts-config.xml

<struts-config>

<!-- Form Beans Configuration -->

<form-beans>

<form-bean name="searchForm"

type="com.solversa.SearchForm"/>

</form-beans>

<!-- Global Forwards Configuration -->

<global-forwards>

<forward name="search" path="/search.jsp"/>

</global-forwards>

<!-- Action Mappings Configuration -->

<action-mappings>

<action path="/search"

type="com.solversa.SearchAction"

name="searchForm"

scope="request"

validate="true"

input="/search.jsp">

</action>

</action-mappings>

<!-- Message Resources Configuration -->

<message-resources

parameter="ApplicationResources"/>

<!-- Validator Configuration -->

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames"

value="/WEB-INF/validator-rules.xml,

/WEB-INF/validation.xml"/>

</plug-in>

</struts-config>

File Name : <b> validation.xml </b>

<form-validation>

<formset>

<form name="searchForm">

<field property="name" depends="minlength">

<arg key="label.search.name" position = "0"/>

<arg1 name="minlength" key="${var:minlength}" resource="false"/>

<var>

<var-name>minlength</var-name>

<var-value>5</var-value>

</var>

</field>

<field property="ssNum" depends="mask">

<arg0 key="label.search.ssNum"/>

<var>

<var-name>mask</var-name>

<var-value>^\d{3}-\d{2}-\d{4}$</var-value>

</var>

</field>

</form>

</formset>

</form-validation>

File Name : <b> SearchForm.java </b>

package com.jamesholmes.minihr;

import java.util.List;

import org.apache.struts.validator.ValidatorForm;

public class SearchForm extends ValidatorForm

{

private String name = null;

private String ssNum = null;

private List results = null;

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setSsNum(String ssNum) {

this.ssNum = ssNum;

}

public String getSsNum() {

return ssNum;

}

public void setResults(List results) {

this.results = results;

}

public List getResults() {

return results;

}

}

File Name : <b> SearchAction.java </b>

package com.jamesholmes.minihr;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

public final class SearchAction extends Action

{

public ActionForward execute(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception

{

EmployeeSearchService service = new EmployeeSearchService();

ArrayList results;

SearchForm searchForm = (SearchForm) form;

// Perform employee search based on what criteria was entered.

String name = searchForm.getName();

if (name != null && name.trim().length() > 0) {

results = service.searchByName(name);

} else {

results = service.searchBySsNum(searchForm.getSsNum().trim());

}

// Place search results in SearchForm for access by JSP.

searchForm.setResults(results);

// Forward control to this Action's input page.

return mapping.getInputForward();

}

}

File Name : <b> EmployeeSearchService.java </b>

package com.jamesholmes.minihr;

import java.util.ArrayList;

public class EmployeeSearchService

{

/* Hard-coded sample data. Normally this would come from a real data

source such as a database. */

private static Employee[] employees =

{

new Employee("Bob Davidson", "123-45-6789"),

new Employee("Mary Williams", "987-65-4321"),

new Employee("Jim Smith", "111-11-1111"),

new Employee("Beverly Harris", "222-22-2222"),

new Employee("Thomas Frank", "333-33-3333"),

new Employee("Jim Davidson", "444-44-4444")

};

// Search for employees by name.

public ArrayList searchByName(String name) {

ArrayList resultList = new ArrayList();

for (int i = 0; i < employees.length; i++) {

if (employees.getName().toUpperCase().indexOf(name.toUpperCase()) != -1) {

resultList.add(employees);

}

}

return resultList;

}

// Search for employee by social security number.

public ArrayList searchBySsNum(String ssNum) {

ArrayList resultList = new ArrayList();

for (int i = 0; i < employees.length; i++) {

if (employees.getSsNum().equals(ssNum)) {

resultList.add(employees);

}

}

return resultList;

}

}

File Name : <b> Employee.java </b>

package com.solversa;

public class Employee

{

private String name;

private String ssNum;

public Employee(String name, String ssNum) {

this.name = name;

this.ssNum = ssNum;

}

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setSsNum(String ssNum) {

this.ssNum = ssNum;

}

public String getSsNum() {

return ssNum;

}

}

Pls help me out.

Not able to prompt errors.

[6350 byte] By [Vijendra_Babara] at [2007-10-3 0:34:25]
# 1

> Hello Friends,

> I am not able to run validation using

> validation.xml & validator-rules.xml.

> Entire code in running prefectly but no error

> messages are prompted.

>

> Following is my code:

>

>

>

> File Name : struts-config.xml

>

>

> <struts-config>

>

><!-- Form Beans Configuration -->

> <form-beans>

><form-bean name="searchForm"

>type="com.solversa.SearchForm"/>

> ans>

>

><!-- Global Forwards Configuration -->

> <global-forwards>

><forward name="search" path="/search.jsp"/>

> global-forwards>

>

><!-- Action Mappings Configuration -->

> <action-mappings>

><action path="/search"

> type="com.solversa.SearchAction"

>name="searchForm"

> scope="request"

>validate="true"

> input="/search.jsp">

> tion>

></action-mappings>

><!-- Message Resources Configuration -->

> <message-resources

>parameter="ApplicationResources"/>

> <!-- Validator Configuration -->

> <plug-in

> className="org.apache.struts.validator.ValidatorPlugI

> ">

><set-property property="pathnames"

>value="/WEB-INF/validator-rules.xml,

>/WEB-INF/validation.xml"/>

> >

>

> </struts-config>

>

>

>

>

File Name : <b> validation.xml </b>

>

>

> <form-validation>

><formset>

><form name="searchForm">

><field property="name" depends="minlength">

><arg key="label.search.name" position = "0"/>

> <arg1 name="minlength" key="${var:minlength}"

> resource="false"/>

><var>

><var-name>minlength</var-name>

><var-value>5</var-value>

> </var>

></field>

><field property="ssNum" depends="mask">

><arg0 key="label.search.ssNum"/>

><var>

><var-name>mask</var-name>

><var-value>^\d{3}-\d{2}-\d{4}$</var-value>

></var>

> </field>

>

> /form>

></formset>

> form-validation>

>

>

>

File Name : <b> SearchForm.java </b>

>

> package com.jamesholmes.minihr;

>

> import java.util.List;

> import org.apache.struts.validator.ValidatorForm;

>

> public class SearchForm extends ValidatorForm

> {

>private String name = null;

> private String ssNum = null;

>private List results = null;

>public void setName(String name) {

>this.name = name;

> }

>

>public String getName() {

>return name;

> }

>

>public void setSsNum(String ssNum) {

>this.ssNum = ssNum;

> }

>

>public String getSsNum() {

>return ssNum;

> }

>

>public void setResults(List results) {

>this.results = results;

> }

>

>public List getResults() {

>return results;

> }

> }

>

>

>

File Name : <b> SearchAction.java </b>

>

> package com.jamesholmes.minihr;

>

> import java.util.ArrayList;

>

> import javax.servlet.http.HttpServletRequest;

> import javax.servlet.http.HttpServletResponse;

>

> import org.apache.struts.action.Action;

> import org.apache.struts.action.ActionForm;

> import org.apache.struts.action.ActionForward;

> import org.apache.struts.action.ActionMapping;

>

> public final class SearchAction extends Action

> {

> public ActionForward execute(ActionMapping

> mapping,

>ActionForm form,

> HttpServletRequest request,

>HttpServletResponse response)

> throws Exception

> {

> EmployeeSearchService service = new

> EmployeeSearchService();

>ArrayList results;

>SearchForm searchForm = (SearchForm) form;

> // Perform employee search based on what criteria

> was entered.

>String name = searchForm.getName();

> if (name != null && name.trim().length() > 0) {

>results = service.searchByName(name);

> else {

> results =

> service.searchBySsNum(searchForm.getSsNum().trim());

>}

> // Place search results in SearchForm for access

> by JSP.

>searchForm.setResults(results);

>// Forward control to this Action's input page.

> return mapping.getInputForward();

> }

>

>

>

File Name : <b> EmployeeSearchService.java </b>

>

> package com.jamesholmes.minihr;

>

> import java.util.ArrayList;

>

> public class EmployeeSearchService

> {

> /* Hard-coded sample data. Normally this would come

> from a real data

>source such as a database. */

> ivate static Employee[] employees =

>{

>new Employee("Bob Davidson", "123-45-6789"),

>new Employee("Mary Williams", "987-65-4321"),

>new Employee("Jim Smith", "111-11-1111"),

>new Employee("Beverly Harris", "222-22-2222"),

>new Employee("Thomas Frank", "333-33-3333"),

>new Employee("Jim Davidson", "444-44-4444")

> };

>

>// Search for employees by name.

> public ArrayList searchByName(String name) {

>ArrayList resultList = new ArrayList();

>for (int i = 0; i < employees.length; i++) {

> if

> (employees.getName().toUpperCase().indexOf(name.toU

> pperCase()) != -1) {

> resultList.add(employees);

>

>}

>return resultList;

> }

>

>// Search for employee by social security number.

> public ArrayList searchBySsNum(String ssNum) {

>ArrayList resultList = new ArrayList();

>for (int i = 0; i < employees.length; i++) {

>if (employees.getSsNum().equals(ssNum)) {

>resultList.add(employees);

>}

>}

>return resultList;

>

> }

>

>

File Name : <b> Employee.java </b>

>

> package com.solversa;

> public class Employee

> {

>private String name;

>private String ssNum;

>

>public Employee(String name, String ssNum) {

>this.name = name;

>this.ssNum = ssNum;

>}

>

>public void setName(String name) {

>this.name = name;

>}

>

>public String getName() {

>return name;

>}

>

>public void setSsNum(String ssNum) {

>this.ssNum = ssNum;

>}

>

>public String getSsNum() {

>return ssNum;

>}

> }

>

>

> Pls help me out.

> Not able to prompt errors.

Hi,

Your error message are not displaying because u does not made Message-Resoucrce property file (Resource Bundle) when you make it .

give it entry in

struts-config.xml

<message-resources parameter="ApplicationResources" />

and

define key and corresponding error message to key in this ApplicationResources i.e

#Error Resources

label.search.ssNum=Plz Enter correct ssNum

SunnyAggarwala at 2007-7-14 17:28:04 > top of Java-index,Enterprise & Remote Computing,AVK Portability...