标签:style io ar 使用 java 数据 on cti log
使用版本为play 1.2.5根据官方的例子
首先我们生成一个UUID传到register页面上去
public static void register(){
String randomID = Codec.UUID();
render("/UserControl/register.html",randomID);
}然后我们定义一个通过UUID生成验证码的方法
public static void captcha(String id) {
Images.Captcha captcha = Images.captcha();
String code = captcha.getText("#E4EAFD");设置验证码颜色
Cache.set(id, code, "10mn");//缓存在服务端
renderBinary(captcha);渲染图像
}在register.html我们定义
<img src="@{UserControl.captcha(randomID)}" style="margin-left: 100px" id="code"><input type="hidden" name="randomID" value="${randomID}" id="hiddenCode"/>img标签通过传过来的UUID渲染验证码图像,input把传过来的UUID再传回服务器,然后服务器可以验证
validation.equals(
validate, Cache.get(randomID)
).message("Invalid code. Please type it again");
if(validation.hasErrors()) {
flash.put("info", "validate error");
userlogin();
}下面介绍更换验证码的方法
public static void changeCode(String randomID){
Cache.delete(randomID);
String ID = Codec.UUID();
WebServiceBean bean = new WebServiceBean();
bean.result = 0;
bean.data = ID;
renderJSON(bean);
}然后页面ajax这样处理
$("#changeCode").click(function(event) {
/* Act on the event */
event.preventDefault();
$.ajax({
url: url+'UserControl/changeCode',
data: {randomID: '${randomID}'},
})
.done(function(data) {
$("#code").attr('src', url+'UserControl/captcha?id='+data.data);
$("#hiddenCode").val(data.data);
//console.log(data);
})
.fail(function(data) {
console.log('error');
})
});ajax把页面的uuid传给后台的changeCode方法,然后根据返回来的新的UUID更新img的src和input hidden的value
标签:style io ar 使用 java 数据 on cti log
原文地址:http://blog.csdn.net/chengscau/article/details/40211517