Validator 自身实现了 Interceptor 接口,所以它也是一个拦截器,配置方式与拦截器完全一 样。以下是 Validator 示例:
public class LoginValidator extends Validator {
protected void validate(Controller c) { validateRequiredString("name", "nameMsg", "请输入用户名"); validateRequiredString("pass", "passMsg", "请输入密码");
}
protected void handleError(Controller c) { c.keepPara("name");
c.render("login.html");
}
}
protected void validator(Controller c)方法中可以调用 validateXxx(…)系列方法进行后端校 验,protected void handleError(Controller c)方法中可以调用 c.keepPara(…)方法将提交的值再传 回页面以便保持原先输入的值,还可以调用 c.render(…) 方法来返回相应的页面。 注意 handleError(Controller c)只有在校验失败时才会调用。
以上代码 handleError 方法中的 keepXxx 方法用于将页面表单中的数据保持住并传递回页, 以便于用户无需再重复输入已经通过验证的表单域,如果传递过来的是 model 对象,可以使用 keepModel 方法来保持住用户输入过的数据。
(c) 2024 chaojicainiao.com MIT license