import com.jfinal.core.Controller; //导入方法依赖的package包/类
/**
* 对验证码进行验证
*
* @param inv
* @param captchaValidate
* @return
*/
private boolean validateCaptache(FixedInvocation inv, CaptchaValidate captchaValidate) {
String formName = captchaValidate.form();
if (StringUtils.isBlank(formName)) {
throw new IllegalArgumentException("@CaptchaValidate.form must not be empty in " + inv.getController().getClass().getName() + "." + inv.getMethodName());
}
Controller controller = inv.getController();
if (controller.validateCaptcha(formName)) {
return true;
}
String errorRedirect = captchaValidate.errorRedirect();
String message = StringUtils.isBlank(captchaValidate.message()) ? "验证码不能为空" : captchaValidate.message();
if (StringUtils.isNotBlank(errorRedirect)) {
if (controller instanceof JbootController) {
JbootController c = (JbootController) controller;
c.setFlashMap(Ret.fail("message", message).set("code", DEFAULT_ERROR_CODE).set("form", formName));
}
controller.redirect(errorRedirect);
return false;
}
//如果ajax请求,返回一个错误数据。
if (RequestUtils.isAjaxRequest(controller.getRequest())) {
controller.renderJson(Ret.fail("message", message).set("code", DEFAULT_ERROR_CODE).set("form", formName));
return false;
}
controller.renderError(404);
return false;
}