I'm not guaranteeing that this is the best way to do it, but it works for me ;-)

      <validator name="date1LEdate2"
            classname="portfolio.CustomValidators"
               method="date1LEdate2"
         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.daterange">
      </validator>

        private static final String dateTimeFormat = "MM/dd/yyyy-HH:mm:ss";

        /*
         * This validator must be associated with date2 (the later date),
         * not date1. (This is so that date1 has already been validated.)
         * date1 and date2 must use the same datePattern and
         * they must have already been validated as valid dates,
         */

        public static boolean date1LEdate2( Object bean,
                                                                                
ValidatorAction va,
                                                                                Field 
field,
                                                                                
ActionErrors errors,
                                                                                
HttpServletRequest request )
        {

                String date2Property = field.getProperty();
                String dateStr2 = ValidatorUtil.getValueAsString(bean,date2Property);
                String date1Property = field.getVarValue("date1");
                String dateStr1 = ValidatorUtil.getValueAsString(bean,date1Property);

                String datePattern = null;
                try {
                        datePattern = field.getVarValue("datePatternStrict");
                } catch (Exception e1) {
                        try {
                                datePattern = field.getVarValue("datePattern");
                        } catch (Exception e2) {}
                }
                if (datePattern == null) {
                        errors.add( field.getKey(), new 
ActionMessage("errors.validator.config") );
                        return false;
                }
                boolean returnVal;
                try {
                        SimpleDateFormat formatter = new SimpleDateFormat(datePattern);
                        Date date1 = formatter.parse(dateStr1, new ParsePosition(0));
                        Date date2 = formatter.parse(dateStr2, new ParsePosition(0));
                        returnVal = date1.compareTo(date2) <= 0 ? true : false;
                } catch (Exception e) {
                        System.out.println(e);
                        e.printStackTrace();
                        returnVal = false;
                }

                if ( returnVal == false ) {
                        errors.add( field.getKey(), new 
ActionMessage("errors.daterange", date1Property, date2Property) );
                }

                return returnVal;
        }

-----Original Message-----
From: Dean A. Hoover [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 11, 2004 1:12 PM
To: [EMAIL PROTECTED]
Subject: Struts in Action: 12.10.1 Multipage validations


This section of the book sounds interesting, but
it would be nice if there were an example somewhere.
Can someone point me to one?

Dean Hoover


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


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

Reply via email to