rleland 2003/10/01 08:43:12 Modified: conf/share validator-rules.xml Log: Remove all javescript definitions except the 'required', and default to the ones stored in commons-validator. The 'required' was kept to prevent a regression in functionality ityat is n the CVS version of commons-validator. Revision Changes Path 1.43 +24 -760 jakarta-struts/conf/share/validator-rules.xml Index: validator-rules.xml =================================================================== RCS file: /home/cvs/jakarta-struts/conf/share/validator-rules.xml,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- validator-rules.xml 1 Oct 2003 15:07:57 -0000 1.42 +++ validator-rules.xml 1 Oct 2003 15:43:11 -0000 1.43 @@ -1,6 +1,6 @@ <!DOCTYPE form-validation PUBLIC - "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" - "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> + "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN" + "http://jakarta.apache.org/commons/dtds/validator_1_1.dtd"> <!-- $Header$ $Revision$ @@ -39,6 +39,11 @@ errors.range={0} is not in the range {1} through {2}. errors.creditcard={0} is an invalid credit card number. errors.email={0} is an invalid e-mail address. + + Note: Starting in Struts 1.2.0 the default javascript definitions have + been consolidated to commons-validator. The default can be overridden + by supplying a <javascript> element with a CDATA section, just as + in struts 1.1. --> @@ -152,8 +157,7 @@ org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest" - msg="errors.required"> - </validator> + msg="errors.required"/> <validator name="validwhen" msg="errors.required" @@ -176,40 +180,7 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" - msg="errors.minlength"> - - <javascript><![CDATA[ - function validateMinLength(form) { - var isValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oMinLength = new minlength(); - for (x in oMinLength) { - var field = form[oMinLength[x][0]]; - - if (field.type == 'text' || - field.type == 'textarea') { - - var iMin = parseInt(oMinLength[x][2]("minlength")); - if ((trim(field.value).length > 0) && (field.value.length < iMin)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oMinLength[x][1]; - isValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return isValid; - }]]> - </javascript> - - </validator> + msg="errors.minlength"/> <validator name="maxlength" @@ -221,41 +192,9 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" - msg="errors.maxlength"> - - <javascript><![CDATA[ - function validateMaxLength(form) { - var isValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oMaxLength = new maxlength(); - for (x in oMaxLength) { - var field = form[oMaxLength[x][0]]; - - if (field.type == 'text' || - field.type == 'textarea') { - - var iMax = parseInt(oMaxLength[x][2]("maxlength")); - if (field.value.length > iMax) { - if (i == 0) { - focusField = field; - } - fields[i++] = oMaxLength[x][1]; - isValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return isValid; - }]]> - </javascript> - - </validator> + msg="errors.invalid"/> + <validator name="mask" classname="org.apache.struts.validator.FieldChecks" @@ -266,45 +205,7 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" - msg="errors.invalid"> - - <javascript><![CDATA[ - function validateMask(form) { - var isValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oMasked = new mask(); - for (x in oMasked) { - var field = form[oMasked[x][0]]; - - if ((field.type == 'text' || - field.type == 'textarea') && - (field.value.length > 0)) { - - if (!matchPattern(field.value, oMasked[x][2]("mask"))) { - if (i == 0) { - focusField = field; - } - fields[i++] = oMasked[x][1]; - isValid = false; - } - } - } - - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return isValid; - } - - function matchPattern(value, mask) { - return mask.exec(value); - }]]> - </javascript> - - </validator> + msg="errors.invalid"/> <validator name="byte" @@ -317,66 +218,7 @@ javax.servlet.http.HttpServletRequest" depends="" msg="errors.byte" - jsFunctionName="ByteValidations"> - - <javascript><![CDATA[ - function validateByte(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oByte = new ByteValidations(); - for (x in oByte) { - var field = form[oByte[x][0]]; - - if (field.type == 'text' || - field.type == 'textarea' || - field.type == 'select-one' || - field.type == 'radio') { - - 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 (value.length > 0) { - if (!isAllDigits(value)) { - bValid = false; - if (i == 0) { - focusField = field; - } - fields[i++] = oByte[x][1]; - - } else { - - var iValue = parseInt(value); - if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oByte[x][1]; - bValid = false; - } - } - } - - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - }]]> - </javascript> - - </validator> + jsFunctionName="ByteValidations"/> <validator name="short" @@ -389,65 +231,7 @@ javax.servlet.http.HttpServletRequest" depends="" msg="errors.short" - jsFunctionName="ShortValidations"> - - <javascript><![CDATA[ - function validateShort(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oShort = new ShortValidations(); - for (x in oShort) { - var field = form[oShort[x][0]]; - - if (field.type == 'text' || - field.type == 'textarea' || - field.type == 'select-one' || - field.type == 'radio') { - - 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 (value.length > 0) { - if (!isAllDigits(value)) { - bValid = false; - if (i == 0) { - focusField = field; - } - fields[i++] = oShort[x][1]; - - } else { - - var iValue = parseInt(value); - if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oShort[x][1]; - bValid = false; - } - } - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - }]]> - </javascript> - - </validator> + jsFunctionName="ShortValidations"/> <validator name="integer" @@ -460,85 +244,8 @@ javax.servlet.http.HttpServletRequest" depends="" msg="errors.integer" - jsFunctionName="IntegerValidations"> - - <javascript><![CDATA[ - function validateInteger(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oInteger = new IntegerValidations(); - for (x in oInteger) { - var field = form[oInteger[x][0]]; - - if (field.type == 'text' || - field.type == 'textarea' || - field.type == 'select-one' || - field.type == 'radio') { - - 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 (value.length > 0) { - - if (!isAllDigits(value)) { - bValid = false; - if (i == 0) { - focusField = field; - } - fields[i++] = oInteger[x][1]; - - } else { - var iValue = parseInt(value); - if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oInteger[x][1]; - bValid = false; - } - } - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - } - - function isAllDigits(argvalue) { - argvalue = argvalue.toString(); - var validChars = "0123456789"; - var startFrom = 0; - if (argvalue.substring(0, 2) == "0x") { - validChars = "0123456789abcdefABCDEF"; - startFrom = 2; - } else if (argvalue.charAt(0) == "0") { - validChars = "01234567"; - startFrom = 1; - } else if (argvalue.charAt(0) == "-") { - startFrom = 1; - } - - for (var n = startFrom; n < argvalue.length; n++) { - if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; - } - return true; - }]]> - </javascript> + jsFunctionName="IntegerValidations"/> - </validator> <validator name="long" @@ -563,74 +270,7 @@ javax.servlet.http.HttpServletRequest" depends="" msg="errors.float" - jsFunctionName="FloatValidations"> - - <javascript><![CDATA[ - function validateFloat(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oFloat = new FloatValidations(); - for (x in oFloat) { - var field = form[oFloat[x][0]]; - - if (field.type == 'text' || - field.type == 'textarea' || - field.type == 'select-one' || - field.type == 'radio') { - - 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 (value.length > 0) { - // remove '.' before checking digits - var tempArray = value.split('.'); - var joinedString= tempArray.join(''); - //Strip off leading '0' - var zeroIndex = 0; - while (joinedString.charAt(zeroIndex) == '0') { - zeroIndex++; - } - var noZeroString = joinedString.substring(zeroIndex,joinedString.length); - if (!isAllDigits(noZeroString)) { - bValid = false; - if (i == 0) { - focusField = field; - } - fields[i++] = oFloat[x][1]; - - } else { - var iValue = parseFloat(value); - if (isNaN(iValue)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oFloat[x][1]; - bValid = false; - } - } - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - }]]> - </javascript> - - </validator> - + jsFunctionName="FloatValidations"/> <validator name="double" classname="org.apache.struts.validator.FieldChecks" @@ -654,160 +294,7 @@ javax.servlet.http.HttpServletRequest" depends="" msg="errors.date" - jsFunctionName="DateValidations"> - - <javascript><![CDATA[ - function validateDate(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oDate = new DateValidations(); - for (x in oDate) { - var value = form[oDate[x][0]].value; - var datePattern = oDate[x][2]("datePatternStrict"); - // try loose pattern - if (datePattern == null) - datePattern = oDate[x][2]("datePattern"); - if ((form[oDate[x][0]].type == 'text' || - form[oDate[x][0]].type == 'textarea') && - (value.length > 0) && - (datePattern.length > 0)) { - var MONTH = "MM"; - var DAY = "dd"; - var YEAR = "yyyy"; - var orderMonth = datePattern.indexOf(MONTH); - var orderDay = datePattern.indexOf(DAY); - var orderYear = datePattern.indexOf(YEAR); - if ((orderDay < orderYear && orderDay > orderMonth)) { - var iDelim1 = orderMonth + MONTH.length; - var iDelim2 = orderDay + DAY.length; - var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); - var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); - if (iDelim1 == orderDay && iDelim2 == orderYear) { - dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); - } else if (iDelim1 == orderDay) { - dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); - } else if (iDelim2 == orderYear) { - dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); - } else { - dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); - } - var matched = dateRegexp.exec(value); - if(matched != null) { - if (!isValidDate(matched[2], matched[1], matched[3])) { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } else { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } else if ((orderMonth < orderYear && orderMonth > orderDay)) { - var iDelim1 = orderDay + DAY.length; - var iDelim2 = orderMonth + MONTH.length; - var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); - var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); - if (iDelim1 == orderMonth && iDelim2 == orderYear) { - dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); - } else if (iDelim1 == orderMonth) { - dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); - } else if (iDelim2 == orderYear) { - dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); - } else { - dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); - } - var matched = dateRegexp.exec(value); - if(matched != null) { - if (!isValidDate(matched[1], matched[2], matched[3])) { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } else { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } else if ((orderMonth > orderYear && orderMonth < orderDay)) { - var iDelim1 = orderYear + YEAR.length; - var iDelim2 = orderMonth + MONTH.length; - var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); - var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); - if (iDelim1 == orderMonth && iDelim2 == orderDay) { - dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); - } else if (iDelim1 == orderMonth) { - dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); - } else if (iDelim2 == orderDay) { - dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); - } else { - dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); - } - var matched = dateRegexp.exec(value); - if(matched != null) { - if (!isValidDate(matched[3], matched[2], matched[1])) { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } else { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } else { - if (i == 0) { - focusField = form[oDate[x][0]]; - } - fields[i++] = oDate[x][1]; - bValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - } - - function isValidDate(day, month, year) { - if (month < 1 || month > 12) { - return false; - } - if (day < 1 || day > 31) { - return false; - } - if ((month == 4 || month == 6 || month == 9 || month == 11) && - (day == 31)) { - return false; - } - if (month == 2) { - var leap = (year % 4 == 0 && - (year % 100 != 0 || year % 400 == 0)); - if (day>29 || (day == 29 && !leap)) { - return false; - } - } - return true; - }]]> - </javascript> - - </validator> + jsFunctionName="DateValidations"/> <validator name="intRange" @@ -819,50 +306,8 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="integer" - msg="errors.range"> - - <javascript><![CDATA[ - function validateIntRange(form) { - var isValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oRange = new intRange(); - for (x in oRange) { - var field = form[oRange[x][0]]; - var value = ''; - if (field.type == 'text' || field.type == 'textarea' || - field.type == 'radio' ) { - value = field.value; - } - if (field.type == 'select-one') { - var si = field.selectedIndex; - if (si >= 0) { - value = field.options[si].value; - } - } - if (value.length > 0) { - var iMin = parseInt(oRange[x][2]("min")); - var iMax = parseInt(oRange[x][2]("max")); - var iValue = parseInt(value); - if (!(iValue >= iMin && iValue <= iMax)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oRange[x][1]; - isValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return isValid; - }]]> - </javascript> + msg="errors.range"/> - </validator> <validator name="floatRange" classname="org.apache.struts.validator.FieldChecks" @@ -873,43 +318,9 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="float" - msg="errors.range"> + msg="errors.range"/> - <javascript><![CDATA[ - function validateFloatRange(form) { - var isValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oRange = new floatRange(); - for (x in oRange) { - var field = form[oRange[x][0]]; - - if ((field.type == 'text' || - field.type == 'textarea') && - (field.value.length > 0)) { - - var fMin = parseFloat(oRange[x][2]("min")); - var fMax = parseFloat(oRange[x][2]("max")); - var fValue = parseFloat(field.value); - if (!(fValue >= fMin && fValue <= fMax)) { - if (i == 0) { - focusField = field; - } - fields[i++] = oRange[x][1]; - isValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return isValid; - }]]> - </javascript> - </validator> <validator name="creditCard" classname="org.apache.struts.validator.FieldChecks" @@ -920,73 +331,7 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" - msg="errors.creditcard"> - - <javascript><![CDATA[ - function validateCreditCard(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oCreditCard = new creditCard(); - for (x in oCreditCard) { - if ((form[oCreditCard[x][0]].type == 'text' || - form[oCreditCard[x][0]].type == 'textarea') && - (form[oCreditCard[x][0]].value.length > 0)) { - if (!luhnCheck(form[oCreditCard[x][0]].value)) { - if (i == 0) { - focusField = form[oCreditCard[x][0]]; - } - fields[i++] = oCreditCard[x][1]; - bValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - } - - /** - * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl - */ - function luhnCheck(cardNumber) { - if (isLuhnNum(cardNumber)) { - var no_digit = cardNumber.length; - var oddoeven = no_digit & 1; - var sum = 0; - for (var count = 0; count < no_digit; count++) { - var digit = parseInt(cardNumber.charAt(count)); - if (!((count & 1) ^ oddoeven)) { - digit *= 2; - if (digit > 9) digit -= 9; - }; - sum += digit; - }; - if (sum == 0) return false; - if (sum % 10 == 0) return true; - }; - return false; - } - - function isLuhnNum(argvalue) { - argvalue = argvalue.toString(); - if (argvalue.length == 0) { - return false; - } - for (var n = 0; n < argvalue.length; n++) { - if ((argvalue.substring(n, n+1) < "0") || - (argvalue.substring(n,n+1) > "9")) { - return false; - } - } - return true; - }]]> - </javascript> - - </validator> + msg="errors.creditcard"/> <validator name="email" @@ -998,89 +343,8 @@ org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" - msg="errors.email"> - - <javascript><![CDATA[ - function validateEmail(form) { - var bValid = true; - var focusField = null; - var i = 0; - var fields = new Array(); - oEmail = new email(); - for (x in oEmail) { - if ((form[oEmail[x][0]].type == 'text' || - form[oEmail[x][0]].type == 'textarea') && - (form[oEmail[x][0]].value.length > 0)) { - if (!checkEmail(form[oEmail[x][0]].value)) { - if (i == 0) { - focusField = form[oEmail[x][0]]; - } - fields[i++] = oEmail[x][1]; - bValid = false; - } - } - } - if (fields.length > 0) { - focusField.focus(); - alert(fields.join('\n')); - } - return bValid; - } - - /** - * Reference: Sandeep V. Tamhankar ([EMAIL PROTECTED]), - * http://javascript.internet.com - */ - function checkEmail(emailStr) { - if (emailStr.length == 0) { - return true; - } - var emailPat=/^(.+)@(.+)$/; - var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; - var validChars="\[^\\s" + specialChars + "\]"; - var quotedUser="(\"[^\"]*\")"; - var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; - var atom=validChars + '+'; - var word="(" + atom + "|" + quotedUser + ")"; - var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); - var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); - var matchArray=emailStr.match(emailPat); - if (matchArray == null) { - return false; - } - var user=matchArray[1]; - var domain=matchArray[2]; - if (user.match(userPat) == null) { - return false; - } - var IPArray = domain.match(ipDomainPat); - if (IPArray != null) { - for (var i = 1; i <= 4; i++) { - if (IPArray[i] > 255) { - return false; - } - } - return true; - } - var domainArray=domain.match(domainPat); - if (domainArray == null) { - return false; - } - var atomPat=new RegExp(atom,"g"); - var domArr=domain.match(atomPat); - var len=domArr.length; - if ((domArr[domArr.length-1].length < 2) || - (domArr[domArr.length-1].length > 3)) { - return false; - } - if (len < 2) { - return false; - } - return true; - }]]> - </javascript> + msg="errors.email"/> - </validator> </global>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]