日期:2014-05-16 浏览次数:20873 次
今天需要写一个简单的应用:用户注册时检查用户名是否可以使用。
?
之前在struts2下貌似对ajax的支持是不错的(其实有点烦),而且网上有很多教程。不过这次是换成springmvc了,而且是spring3,网上东西不多。
?
不过还是在springsource上发现了一篇文章。
?
在客户端使用了formValidtor插件,这个插件真的不错,呵呵。
?
$("#loginName").formValidator({onshow:"请输入用户名",onfocus:"用户名至少6个字符,最多15个字符",oncorrect:"该用户名可以注册"}).inputValidator({min:6,max:15,onerror:"你输入的用户名非法,请确认"}).regexValidator({regexp:"username",datatype:"enum",onerror:"用户名格式不正确"}).ajaxValidator({
	    type : "get",
		url : "${ctx}/ajax/checkLoginName",
		datatype : "json",
		success : function(data){	
            if( data == "1" )
			{
                return true;
			}
            else
			{
                return false;
			}
		},
		buttons: $("#button"),
		error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
		onerror : "该用户名不可用,请更换用户名",
		onwait : "正在对用户名进行合法性校验,请稍候..."
	});
?这个是formValidator自带的ajax方式验证,很明了。
?
在老外的那片文章上发现可以有更简单的调用ajax方式:
?
?
jQuery.getJSON( url, [ data ], [ callback(data, textStatus) ] )
?
从jquey网站上可知:
This is a shorthand Ajax function, which is equivalent to:
$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});
?
对应于服务端可以说实在太cool了,简直就是一个标准的spring control!!!!
?
@Controller
@RequestMapping("/ajax")
public class CommonServControl {
	
	@RequestMapping(value = "/checkLoginName", method = RequestMethod.GET)
	public @ResponseBody boolean checkLoginName(@RequestParam String loginName) {
		boolean b = userServ.checkLoginName(loginName);
		return b;
	}
	
	@Autowired
	private UserServ userServ;
	
}
?
?这段代码相信实在是够“POJO”了吧。
当然注意!!!这样还不够!