Thanks a lot Erik, a very good start for me.
 
regards
Manisha

Erik Weber <[EMAIL PROTECTED]> wrote:
This is not a direct answer to any of your questions but perhaps it will 
spur your thinking.

This is an example of using a custom ("pluggable") validator that makes 
sure a date entry is not only a real date, but that the date is within a 
desired range (seemingly you are wanting to do something similar to 
this). I wrote this for Struts 1.1. I don't know if there is something 
new and improved that would be better, but it works.

>From validation.xml (you'll see the use of the "date" rule -- which 
uses the "datePattern" variable, as well as my custom "dateRange" rule 
-- which uses the "minDate" and "maxDate" variables):




datePattern
MM/dd/yyyy


minDate
01/01/1900


maxDate
12/31/2030





>From validator-rules.xml:

classname="ValidationUtil"
method="validateDateRange"
methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction,

org.apache.commons.validator.Field,

org.apache.struts.action.ActionErrors,

javax.servlet.http.HttpServletRequest"
depends="required"
msg="errors.dateRange"/>


And finally the source of ValidationUtil:


import javax.servlet.http.HttpServletRequest;

import java.util.Date;
import java.text.SimpleDateFormat;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.validator.Resources;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.ValidatorUtil;
import org.apache.commons.validator.GenericValidator;

public class ValidationUtil {

public static final String DEFAULT_FORM_DATE_PATTERN = "M/dd/yyyy";
public static final Date DEFAULT_MIN_DATE = getDefaultMinDate();
public static final Date DEFAULT_MAX_DATE = getDefaultMaxDate();

public static boolean validateDateRange(Object bean, ValidatorAction 
va, Field field, ActionErrors errors, HttpServletRequest request) {
//if we're not properly configured to parse dates,
//all date validation will fail
if (DEFAULT_MIN_DATE == null || DEFAULT_MAX_DATE == null) return false;
try {
String value = ValidatorUtil.getValueAsString(bean, 
field.getProperty());
Date date = getDate(value, DEFAULT_FORM_DATE_PATTERN);
Date minDate = getDate(field.getVarValue("minDate"), 
DEFAULT_FORM_DATE_PATTERN);
Date maxDate = getDate(field.getVarValue("maxDate"), 
DEFAULT_FORM_DATE_PATTERN);
if (date.compareTo(minDate) < 0 || date.compareTo(maxDate) > 0) {
errors.add(field.getKey(), Resources.getActionError(request, va, 
field));
return false;
}
return true;
}
catch (Exception e) {
e.printStackTrace();
errors.add(field.getKey(), Resources.getActionError(request, va, 
field));
return false;
}
}

protected static Date getDate(String dateString, String pattern) {
Date date = null;
try {
SimpleDateFormat df = new SimpleDateFormat(pattern);
date = df.parse(dateString);
}
catch (Exception e) {
e.printStackTrace();
}
return date;
}

protected static Date getDefaultMinDate() {
return getDate("01/01/1900", DEFAULT_FORM_DATE_PATTERN);
}

protected static Date getDefaultMaxDate() {
return getDate("12/31/2030", DEFAULT_FORM_DATE_PATTERN);
}

}


Maybe you should browse the Struts wiki (wiki.apache.org/struts) for 
example links?

Hope that helps some,

Erik

P.S. I never had much luck with DatePatternStrict, always wondered if it 
was buggy . . . But I guess others are using it successfully?



Manisha Sathe wrote:

>I am testing struts validatior in one test program. Finally i could do some 
>date validation for user i/p. I could get javascript pop-up if i enter it 
>wrongly.
> 
>i wanted to test server side validation - so i switched off javascript and 
>tried to submit - it went through w/o throwing any error.
> 
>Now again pls help me, what i am missing out ? I am using something like 
>(instead of ActionForm)
> 
>public class MyForm extends ValidatorForm {
> 
>....
> 
>}
> 
>inside my formbean
> 
>regards
>Manisha
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam? Yahoo! Mail has the best spam protection around 
>http://mail.yahoo.com 
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


                
---------------------------------
Do you Yahoo!?
 Meet the all-new My Yahoo! – Try it today! 

Reply via email to