首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

关于struts2印证框架中的fieldexpression验证,非常灵活

2012-11-03 
关于struts2验证框架中的fieldexpression验证,非常灵活。例如判断输入的密码和重复输入的密码是否相同:fie

关于struts2验证框架中的fieldexpression验证,非常灵活。

例如判断输入的密码和重复输入的密码是否相同:

<field-validator type="fieldexpression">
??????????? <param name="expression">
??????????????? (user.confirmPassword.equals(user.password))
??????????? </param>

</field-validator>

?

fieldexpression方法的源代码在
com.opensymphony.xwork2.validator.validators.FieldExpressionValidator.class

?

public class FieldExpressionValidator extends FieldValidatorSupport {    private String expression;    public void setExpression(String expression) {        this.expression = expression;    }    public String getExpression() {        return expression;    }    public void validate(Object object) throws ValidationException {        String fieldName = getFieldName();        Boolean answer = Boolean.FALSE;        Object obj = null;        try {            obj = getFieldValue(expression, object);        } catch (ValidationException e) {            throw e;        } catch (Exception e) {            // let this pass, but it will be logged right below        }        if ((obj != null) && (obj instanceof Boolean)) {            answer = (Boolean) obj;        } else {            log.warn("Got result of " + obj + " when trying to get Boolean.");        }        if (!answer.booleanValue()) {            addFieldError(fieldName, object);        }    }}

?可以看出参数expression是一段代码的字符串,然后判断返回值boolean,true的话通过验证,否则不通过。

热点排行