不多说,用代码解释
页面:
<input name="randomCode" size="30" type="text" /><img src="/common/random_code" id="imgId"
onclick="javascript:this.src='/common/random_code?' + new Date().getTime();" />
后台:
1.获得验证码
@ClearInterceptor(ClearLayer.ALL)
public void random_code() {
render(new RandomCodeRender("systemRandomCode"));
}
把random_code所在的controller映射到相应的url,这里是/common
2.进行校验
@ClearInterceptor
@Before(LoginValidator.class)
public void login() {
String user_name = getPara("user_name");
String password = getPara("password");
User userInDb = User.dao.findFirst("select id, user_name, user_type, name_chn from user where user_name=? and password=?", user_name, MD5.getMD5(password));
if (userInDb != null) {
//相关操作....
}
//相关操作
}
public class LoginValidator extends Validator {
private static final String msg = "message";
protected void validate(Controller c) {
setShortCircuit(true);
validateRequired("user_name", msg, "请您输入用户名!");
validateRequired("password", msg, "请您输入密码!");
validateRequired("randomCode", msg, "请您输入验证码!");
String inputRandomCode = c.getPara("randomCode");
if (StringUtil.notBlank(inputRandomCode))
inputRandomCode = inputRandomCode.toUpperCase();
String systemRandomCode = c.getCookieValue("systemRandomCode");
if (RandomCodeService.validate(inputRandomCode, systemRandomCode) == false) {
addError(msg, "验证码输入不正确,请重新输入!");
}
}
protected void handleError(Controller c) {
c.keepPara();
c.render("/common/login.html");
}
}
有疑问请留言,或者加入QQ群222478625进行讨论!