List of usage examples for org.apache.commons.validator Field getVarValue
public String getVarValue(String mainKey)
From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java
/** * ?tB?[h`FbN?s?B// w w w .ja va 2 s . c o m * * ??[?s{@link MultiFieldValidator} NX Kv?BNX * <code>validation.xml</code> ??s?B<br> * G?[???AG?[????A wG?[?Xg?B ??[ftHgG?[?bZ?[W?A * ?bZ?[W <code>validation.xml</code> KL?q?B<br> * ANVtH?[valuetB?[hl?Avalue1tB?[hl??A * value2tB?[hl????A?A ??s?B * <h5>{@link MultiFieldValidator} </h5> * <code><pre> * public boolean validate(String value, String[] depends) { * int value0 = Integer.parseInt(value); * int value1 = Integer.parseInt(depends[0]); * int value2 = Integer.parseInt(depends[1]); * return (value1 <= value0 && value2 >= value0); * } * </pre></code> * <h5>validation.xml?</h5> * <code><pre> * <form name="/validateMultiField"> * <field property="value" depends="multiField"> * <msg key="errors.multiField" * name="multiField"/> * <arg key="label.value" position="0" /> * <arg key="label.value1" position="1" /> * <arg key="label.value2" position="2" /> * <var> * <var-name>fields</var-name> * <var-value>value1,value2</var-value> * </var> * <var> * <var-name>multiFieldValidator</var-name> * <var-value>sample.SampleMultiFieldValidator</var-value> * </var> * </field> * </form> * </pre></code> * <h5>?bZ?[W\?[Xt@C?</h5> * <code> * errors.multiField={0}{1}{2}l?B * </code> * * <h5>validation.xml?v<var>vf</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b>K?{?</b></center></td> * <td><center><b>Tv</b></center></td> * </tr> * <tr> * <td> fields </td> * <td>?KvtB?[h</td> * <td>false</td> * <td>?tB?[hw??tB?[hJ}? w?B</td> * </tr> * <tr> * <td> multiFieldValidator </td> * <td>{@link MultiFieldValidator} NX</td> * <td>false</td> * <td>?tB?[h`FbN?s {@link MultiFieldValidator} NX?B</td> * </tr> * </table> * * @param bean * ??IuWFNg * @param va * ValidatorpValidatorAction * @param field * tB?[hIuWFNg * @param errors * ANVG?[ * @param validator * ValidatorCX^X * @param request * HTTPNGXg * @return l? <code>true</code> */ public static boolean validateMultiField(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { // beannull?AG?[?O?o?Atruep?B if (bean == null) { log.error("bean is null."); return true; } // ??l String value = null; if (isString(bean)) { value = (String) bean; } else { value = ValidatorUtils.getValueAsString(bean, field.getProperty()); } // tB?[hK?{`FbN?l?A // ?lnull???tB?[h`FbN?s?B // MultiFieldValidatorNX String multiFieldValidatorClass = field.getVarValue("multiFieldValidator"); if (multiFieldValidatorClass == null || "".equals(multiFieldValidatorClass)) { log.error("var value[multiFieldValidator] is required."); throw new IllegalArgumentException("var value[multiFieldValidator] is required."); } MultiFieldValidator mfv = null; try { mfv = (MultiFieldValidator) ClassUtil.create(multiFieldValidatorClass); } catch (ClassLoadException e) { log.error("var value[multiFieldValidator] is invalid.", e); throw new IllegalArgumentException("var value[multiFieldValidator] is invalid.", e); } catch (ClassCastException e) { log.error("var value[multiFieldValidator] is invalid.", e); throw new IllegalArgumentException("var value[multiFieldValidator] is invalid.", e); } // ?tB?[hl String fields = field.getVarValue("fields"); List<String> valueList = new ArrayList<String>(); if (fields != null) { StringTokenizer st = new StringTokenizer(fields, ","); while (st.hasMoreTokens()) { String f = st.nextToken(); f = f.trim(); valueList.add(ValidatorUtils.getValueAsString(bean, f)); } } if (log.isDebugEnabled()) { log.debug("dependent fields:" + valueList); } String[] values = new String[valueList.size()]; valueList.toArray(values); boolean result = mfv.validate(value, values); if (!result) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???????????/*from w w w . j av a2 s .co m*/ * * <p>???????????true?? * ??? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="maskField" * depends="mask"> * <arg key="sample.escape" position="0"/> * <var> * <var-name>mask</var-name> * <var-value>^([0-9]|[a-z]|[A-Z])*$</var-value> * </var> * </field> * * </form> * </pre></code> * * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> mask </td> * <td>??</td> * <td>true</td> * <td>???????????? <code>true</code> * ????????ValidatorException * ??</td> * </tr> * </table> * * @param bean ?JavaBean * @param va ?<code>ValidatorAction</code> * @param field ?<code>Field</code> * @param errors ????? * ?? * @return ??????<code>true</code>? * ????<code>false</code>? * @exception ValidatorException ?mask(??)?? * ????????? */ public boolean validateMask(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ?? String mask = field.getVarValue("mask"); // var?mask?????????ValidatorException if (StringUtils.isEmpty(mask)) { log.error("var[mask] must be specified."); throw new ValidatorException("var[mask] must be specified."); } // if (!GenericValidator.matchRegexp(value, mask)) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???URL???????<br>//from w w w.j ava2 s.com * ??????????errors??? * false?? * * <p>??HTTP?FTP???? * URL??????? * </p> * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="date" * depends="url"> * <arg key="label.date" position="0"/> * <var> * <var-name>allowallschemes</var-name> * <var-value>false</var-value> * </var> * <var> * <var-name>allow2slashes</var-name> * <var-value>true</var-value> * </var> * <var> * <var-name>nofragments</var-name> * <var-value>false</var-value> * </var> * <var> * <var-name>schemes</var-name> * <var-value>http,ftp</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> allowallschemes </td> * <td>trueor false</td> * <td>false</td> * <td>??????false</td> * </tr> * <tr> * <td> allow2slashes </td> * <td>trueor false</td> * <td>false</td> * <td>????false</td> * </tr> * <tr> * <td> nofragments </td> * <td>trueor false</td> * <td>false</td> * <td>URL???false</td> * </tr> * <tr> * <td> schemes </td> * <td></td> * <td>false</td> * <td>?????? * ?http, https, ftp</td> * </tr> * </table> * * @param bean ?JavaBean * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true */ public boolean validateUrl(Object bean, ValidatorAction va, Field field, ValidationErrors errors) { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ??? boolean allowallschemes = "true".equals(field.getVarValue("allowallschemes")); boolean allow2slashes = "true".equals(field.getVarValue("allow2slashes")); boolean nofragments = "true".equals(field.getVarValue("nofragments")); String schemesVar = allowallschemes ? null : field.getVarValue("schemes"); // if (!ValidationUtil.isUrl(value, allowallschemes, allow2slashes, nofragments, schemesVar)) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ?????????// w w w . j a va 2 s . co m * ????? * ??????????errors??? * false?? * * <p>??????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="stringField" * depends="prohibited"> * <arg key="sample.stringField" position="0"/> * <var> * <var-name>chars</var-name> * <var-value>!"#$%&'()<></var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> chars </td> * <td>?</td> * <td> true </td> * <td>????????ValidatorException * ??</td> * </tr> * </table> * * @param bean ?JavaBean * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @exception ValidatorException ?chars???????? * ??? */ public boolean validateProhibited(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ? String prohibitedStr = field.getVarValue("chars"); // chars?????????ValidatorException if (StringUtils.isEmpty(prohibitedStr)) { log.error("var[chars] must be specified."); throw new ValidatorException("var[chars] must be specified."); } // if (!ValidationUtil.hasNotProhibitedChar(value, prohibitedStr)) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???????????/*from w w w.jav a 2s .c o m*/ * ??????????errors??? * false?? * * <p>???2000/01/01?2010/12/31???????? * ??? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="date" * depends="dateRange"> * <arg key="date" position="0"/> * <var> * <var-name>startDate</var-name> * <var-value>2000/01/01</var-value> * </var> * <var> * <var-name>endDate</var-name> * <var-value>2010/12/31</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> startDate </td> * <td></td> * <td>false</td> * <td>???? * ????????</td> * </tr> * <tr> * <td> endDate </td> * <td></td> * <td>false</td> * <td>???? * ????????</td> * </tr> * <tr> * <td> datePattern </td> * <td></td> * <td>false</td> * <td>???????? * ??????yyyy/MM/dd???2001/1/1????? * datePattern?datePatternStrict??????? * datePattern???? * </td> * </tr> * <tr> * <td> datePatternStrict </td> * <td></td> * <td>false</td> * <td>????? * ??????????? * ??????yyyy/MM/dd???2001/1/1??? * datePattern?datePatternStrict??????? * datePattern???? * </td> * </tr> * </table> * * @param bean ? * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @throws ValidatorException datePattern???datePatternStrict??? * ?????startDate???endDate???????? * ??? */ public boolean validateDateRange(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // String datePattern = field.getVarValue("datePattern"); String datePatternStrict = field.getVarValue("datePatternStrict"); // ? String startDateStr = field.getVarValue("startDate"); String endDateStr = field.getVarValue("endDate"); // try { if (!ValidationUtil.isDateInRange(value, startDateStr, endDateStr, datePattern, datePatternStrict)) { rejectValue(errors, field, va, bean); return false; } } catch (IllegalArgumentException e) { log.error(e.getMessage()); throw new ValidatorException(e.getMessage()); } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ????// ww w . ja va 2 s. co m * * <p>field?datePattern??????? * <code>java.text.SimpleDateFormat</code> * ?????</p> * * <p>field?datePatternStrict??????? * <code>java.text.SimpleDateFormat</code>??? * ???? * ???'2/12/1999'?'MM/dd/yyyy'????? * Month)??????????</p> * * <p>datePattern???datePatternStrict????? * ??datePattern????? * datePattern???datePatternStrict???????? * ?????????????? * ???</p> * * <p>???setLenient=false?????? * 2000/02/31???????????????</p> * * ???yyyy/MM/dd?????? * ????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="dateField" * depends="date"> * <arg key="sample.dateField" position="0"/> * <var> * <var-name>datePattern</var-name> * <var-value>yyyy/MM/dd</var-value> * </var> * </field> * * </form> * </pre></code> * * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> datePattern </td> * <td></td> * <td>false</td> * <td>???????? * ??????yyyy/MM/dd???2001/1/1????? * datePattern?datePatternStrict??????? * datePattern???? * </td> * </tr> * <tr> * <td> datePatternStrict </td> * <td></td> * <td>false</td> * <td>????? * ??????????? * ??????yyyy/MM/dd???2001/1/1??? * datePattern?datePatternStrict??????? * datePattern???? * </td> * </tr> * </table> * * @param bean ?JavaBean * @param va ?<code>ValidatorAction</code> * @param field ?<code>Field</code> * @param errors ????? * ?? * @return ??????<code>true</code>? * ????<code>false</code>? * @throws ValidatorException validation?????? * ? */ public boolean validateDate(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ? String datePattern = field.getVarValue("datePattern"); String datePatternStrict = field.getVarValue("datePatternStrict"); // Date result = null; try { result = ValidationUtil.toDate(value, datePattern, datePatternStrict); } catch (IllegalArgumentException e) { // ???? String message = "Mistake on validation definition file. " + "- datePattern or datePatternStrict is invalid. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } if (result == null) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???????????//from ww w. j a va 2 s . co m * ?? * ??????????errors??? * false?? * * <p>????5?10??????? true * ????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="stringField" * depends="byteRange"> * <arg key="sample.stringField" position="0"/> * <var> * <var-name>maxByteLength</var-name> * <var-value>10</var-value> * </var> * <var> * <var-name>minByteLength</var-name> * <var-value>5</var-value> * </var> * <var> * <var-name>encoding</var-name> * <var-value>Windows-31J</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> maxByteLength </td> * <td>?</td> * <td>false</td> * <td>?????? * ???<code>int</code>???</td> * </tr> * <tr> * <td> minByteLength </td> * <td>??</td> * <td>false</td> * <td>??????? * ???0??</td> * </tr> * <tr> * <td> encoding </td> * <td></td> * <td>false</td> * <td>?????? * ?????VM???</td> * </tr> * </table> * * @param bean ? * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @throws ValidatorException validation?????? * ? */ public boolean validateByteRange(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // String encoding = field.getVarValue("encoding"); // ?? int min = 0; String minStr = field.getVarValue("minByteLength"); if (!GenericValidator.isBlankOrNull(minStr)) { try { min = Integer.parseInt(minStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- minByteLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // ? int max = Integer.MAX_VALUE; String maxStr = field.getVarValue("maxByteLength"); if (!GenericValidator.isBlankOrNull(maxStr)) { try { max = Integer.parseInt(maxStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- maxByteLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // try { if (!ValidationUtil.isByteInRange(value, encoding, min, max)) { rejectValue(errors, field, va, bean); return false; } } catch (IllegalArgumentException e) { log.error("encoding[" + encoding + "] is not supported."); throw new ValidatorException("encoding[" + encoding + "] is not supported."); } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???????????//from www. ja va 2 s . c o m * ??????????errors??? * false?? * * <p>???5???????true?? * ??? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="stringField" * depends="stringLength"> * <arg key="sample.stringField" position="0"/> * <var> * <var-name>stringLength</var-name> * <var-value>5</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> stringLength </td> * <td></td> * <td> false </td> * <td>? * ???<code>int</code>???</td> * </tr> * </table> * * @param bean ?JavaBean * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @throws ValidatorException validation?????? * ? */ public boolean validateStringLength(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // int length = Integer.MAX_VALUE; String lengthStr = field.getVarValue("stringLength"); try { length = Integer.valueOf(lengthStr).intValue(); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- stringLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } // if (value.length() != length) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ??????// w w w .j av a2 s . c om * * <p>???10??????? * true????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="stringField" * depends="maxLength"> * <arg key="sample.stringField" position="0"/> * <var> * <var-name>maxlength</var-name> * <var-value>10</var-value> * </var> * </field> * * </form> * </pre></code> * * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> maxlength </td> * <td></td> * <td>true</td> * <td>?? * ????????</td> * </tr> * </table> * * @param bean ?JavaBean * @param va ?<code>ValidatorAction</code> * @param field ?<code>Field</code> * @param errors ????? * ?? * @return ??????<code>true</code>? * ????<code>false</code>? * @throws ValidatorException validation?????? * ? */ public boolean validateMaxLength(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ? int max = 0; try { max = Integer.parseInt(field.getVarValue("maxlength")); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- maxlength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } // if (!GenericValidator.maxLength(value, max)) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???????//from w ww . j ava 2 s . com * * <p>???10??????? * true????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="stringField" * depends="minLength"> * <arg key="sample.stringField" position="0"/> * <var> * <var-name>minlength</var-name> * <var-value>10</var-value> * </var> * </field> * * </form> * </pre></code> * * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> minlength </td> * <td>?</td> * <td>true</td> * <td>??? * ????????</td> * </tr> * </table> * * @param bean ?JavaBean * @param va ?<code>ValidatorAction</code> * @param field ?<code>Field</code> * @param errors ????? * ?? * @return ??????<code>true</code>? * ????<code>false</code>? * @throws ValidatorException validation?????? * ? */ public boolean validateMinLength(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ?? int min = 0; try { min = Integer.parseInt(field.getVarValue("minlength")); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- minlength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } // if (!GenericValidator.minLength(value, min)) { rejectValue(errors, field, va, bean); return false; } return true; }