Hi there, here is my implementation on the client side, it's validate time against the pattern HH:mm, you can customize against HH:mm:ss with ease: <validator name="time" classname="MyValidatorClass" method="validateTime" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest" msg="errors.time" jsFunctionName="TimeValidations"> <javascript> <![CDATA[ function validateTime(form){ var isValid = true; var focusField = null; var i = 0; var fields = new Array(); var formName = form.getAttributeNode("name");
oTime = eval('new ' + formName.value + '_TimeValidations()'); for (x in oTime) { var field = form[oTime[x][0]]; var value = field.value; if ((field.disabled == false) && (value.length > 0) && (field.type == 'text' || field.type == 'textarea')) { var timeParts = field.value.split(":"); var hour = timeParts[0]; var minute = timeParts[1]; try{ if(hour.length != 2 || minute.length != 2){ fields[i++] = oTime[x][1]; focusField = field; isValid = false; } else { if(isNaN(hour)||isNaN(minute)){ fields[i++] = oTime[x][1]; focusField = field; isValid = false; } else { hour = parseInt(hour); minute = parseInt(minute); if(hour>=24 || hour < 0 || minute >=60 || minute <0){ fields[i++] = oTime[x][1]; focusField = field; isValid = false; } } } } catch(e){ fields[i++] = oTime[x][1]; focusField = field; isValid = false; } } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return isValid; } ]]> </javascript> </validator> Here is the Server side: this method is in the MyValidatorClass public static boolean validateTime(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { boolean result = true; try { String value = ValidatorUtils.getValueAsString(bean, field.getProperty()); if (!GenericValidator.isBlankOrNull(value)) { result = Pattern.matches("[0-2][\\d]:[0-5][\\d]", value); if (result == true) { String hour = value.substring(0, 2); String minute = value.substring(3); int hourInt = Integer.parseInt(hour); int minuteInt = Integer.parseInt(minute); if (hourInt < 0 || hourInt >= 24 || minuteInt < 0 || minuteInt >= 60) { result = false; } } } } catch (NumberFormatException e) { result = false; e.printStackTrace(); } if (result == false) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); } return result; } Maybe it's not the best you can found on the web! Use it at your own risk. Pankaj Gupta wrote: > Is there a validation-rule for time(hh:mm:ss format) as it exists for > date in struts validator framework? If not, has anyone implemented it? > I dont want to reinvent the wheel. > > regards, > Pankaj > > --------------------------------------------------------------------- > 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]