如何能得到validator中的所有错误?

netstu_ 发布于 2015/08/25 12:05
阅读 143
收藏 0
final public void intercept(Invocation invocation) {
		Validator validator = null;
		try {validator = getClass().newInstance();}
		catch (Exception e) {throw new RuntimeException(e);}
		
		validator.controller = invocation.getController();
		validator.invocation = invocation;
		
		try {validator.validate(validator.controller);} 
		catch (ValidateException e) {/* should not be throw */}			// short circuit validate need this
		
		if (validator.invalid)
			validator.handleError(validator.controller);
		else
			invocation.invoke();
	}

        protected void addError(String errorKey, String errorMessage) {
		invalid = true;
		controller.setAttr(errorKey, errorMessage);
		if (shortCircuit) {
			throw new ValidateException();
		}
	}

在addError中,直接用controller.setAttr来做的,但我的controller实现了一个baseController,里面有默认的setAttr

这样的话,我如果要取出所有的错误信息,还需要循环一遍,再过滤.有没有方法直接得到错误信息呢?

@jfinal

加载中
0
JFinal
JFinal
   可以在 YourValidator 中覆盖一下 addError(...) 方法,使用一个中间变量来保存所有错误信息,而不使用 setAttr(...)。
0
netstu_
netstu_

对了,我问错了

我只是想知道是否有错误? 但invalid是私有

netstu_
netstu_
回复 @JFinal : 我这么做了,不行呀,我再试一下
JFinal
JFinal
是否有错误可以通过再利用一个变量,记录一下是否调用过 addError 来判断,也可以通过是否调用了 handleError 来判断
返回顶部
顶部