在同页面中调用方法输出不同验证码方法有很多种
控制器代码:
在控制器生成验证码图片,并且将验证码的字符串存进session中,然后返回给视图
因为在页面中还需要有一张验证码,所以还要生成一张验证码图片
为了避免在页面点击一个验证码的时候 两张验证码同时发生改变,所以给了2个Action 不同的名称
ValidCodeUtils . GetRandomCode(int)
该类是是自己写的,为了生成5个随机的char 类型的值
而括号里面的数字决定了这个随机数的长度
ValidCodeUtils . CreateImage()
为了将5个随机值,生成成二维码图片
Html代码:
在页面写了2个二维码的点击事件,代码如下:
虽然解决了点击一个二维码,两个二维码都会改变的问题,但是这2个二维码第一次生成后还是会一样,所以为了解决这个问题,在就我们打开注册模态框的时候,模拟鼠标点击一下二维码,所以,这样这2个二维码就不会随着其中一个的改变,而2个二维码而改变和相同了。
提示:
注意,2个Action中的二维码字符串,要存在名字不同的session中,避免到时判断验证时出错。
并且因为浏览器缓存机制,2个图片的请求路径一定要加上时间,这样就会避免,点击二维码的时候不会出现二维码图片不变,而session中的二维码字符串一直在改变,影响控制器那边代码的判断,这样就会给用户一种,明明输入了正确的二维码,却一直提示二维码错误的错觉。
这样就解决了在一个页面中调用同一个类生成的二维码,而相互不会影响