Example usage for org.apache.commons.validator Field getVarValue

List of usage examples for org.apache.commons.validator Field getVarValue

Introduction

In this page you can find the example usage for org.apache.commons.validator Field getVarValue.

Prototype

public String getVarValue(String mainKey) 

Source Link

Document

Retrieve a variable's value.

Usage

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 &lt;= value0 &amp;&amp; value2 &gt;= value0);
 * }
 * </pre></code>
 * <h5>validation.xml?</h5>
 * <code><pre>
 * &lt;form name=&quot;/validateMultiField&quot;&gt;
 *   &lt;field property=&quot;value&quot; depends=&quot;multiField&quot;&gt;
 *     &lt;msg key=&quot;errors.multiField&quot;
 *             name=&quot;multiField&quot;/&gt;
 *     &lt;arg key=&quot;label.value&quot; position=&quot;0&quot; /&gt;
 *     &lt;arg key=&quot;label.value1&quot; position=&quot;1&quot; /&gt;
 *     &lt;arg key=&quot;label.value2&quot; position=&quot;2&quot; /&gt;
 *     &lt;var&gt;
 *       &lt;var-name&gt;fields&lt;/var-name&gt;
 *       &lt;var-value&gt;value1,value2&lt;/var-value&gt;
 *     &lt;/var&gt;
 *     &lt;var&gt;
 *       &lt;var-name&gt;multiFieldValidator&lt;/var-name&gt;
 *       &lt;var-value&gt;sample.SampleMultiFieldValidator&lt;/var-value&gt;
 *     &lt;/var&gt;
 *   &lt;/field&gt;
 * &lt;/form&gt;
 * </pre></code>
 * <h5>?bZ?[W\?[Xt@C?</h5>
 * <code>
 * errors.multiField={0}{1}{2}l?B
 * </code>
 * 
 * <h5>validation.xml?v&lt;var&gt;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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;maskField&quot;
 *      depends=&quot;mask&quot;&gt;
 *    &lt;arg key=&quot;sample.escape&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;mask&lt;/var-name&gt;
 *      &lt;var-value&gt;^([0-9]|[a-z]|[A-Z])*$&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 *
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;date&quot;
 *      depends=&quot;url&quot;&gt;
 *    &lt;arg key=&quot;label.date&quot; position=&quot;0&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;allowallschemes&lt;/var-name&gt;
 *      &lt;var-value&gt;false&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;allow2slashes&lt;/var-name&gt;
 *      &lt;var-value&gt;true&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;nofragments&lt;/var-name&gt;
 *      &lt;var-value&gt;false&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;schemes&lt;/var-name&gt;
 *      &lt;var-value&gt;http,ftp&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;stringField&quot;
 *      depends=&quot;prohibited&quot;&gt;
 *    &lt;arg key=&quot;sample.stringField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;chars&lt;/var-name&gt;
 *      &lt;var-value&gt;!&quot;#$%&amp;'()&lt;&gt;&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;date&quot;
 *      depends=&quot;dateRange&quot;&gt;
 *    &lt;arg key=&quot;date&quot; position=&quot;0&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;startDate&lt;/var-name&gt;
 *      &lt;var-value&gt;2000/01/01&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;endDate&lt;/var-name&gt;
 *      &lt;var-value&gt;2010/12/31&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;dateField&quot;
 *      depends=&quot;date&quot;&gt;
 *    &lt;arg key=&quot;sample.dateField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;datePattern&lt;/var-name&gt;
 *      &lt;var-value&gt;yyyy/MM/dd&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 *
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;stringField&quot;
 *      depends=&quot;byteRange&quot;&gt;
 *    &lt;arg key=&quot;sample.stringField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;maxByteLength&lt;/var-name&gt;
 *      &lt;var-value&gt;10&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;minByteLength&lt;/var-name&gt;
 *      &lt;var-value&gt;5&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;encoding&lt;/var-name&gt;
 *      &lt;var-value&gt;Windows-31J&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;stringField&quot;
 *      depends=&quot;stringLength&quot;&gt;
 *    &lt;arg key=&quot;sample.stringField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;stringLength&lt;/var-name&gt;
 *      &lt;var-value&gt;5&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;stringField&quot;
 *      depends=&quot;maxLength&quot;&gt;
 *    &lt;arg key=&quot;sample.stringField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;maxlength&lt;/var-name&gt;
 *      &lt;var-value&gt;10&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 *
 * <h5>validation.xml???&lt;var&gt;?</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>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;stringField&quot;
 *      depends=&quot;minLength&quot;&gt;
 *    &lt;arg key=&quot;sample.stringField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;minlength&lt;/var-name&gt;
 *      &lt;var-value&gt;10&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 *
 * <h5>validation.xml???&lt;var&gt;?</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;
}