需求:注册新用户时,使用Ajax 技术提示用户填写的用户名是否可用
开发环境:使用struts2 框架
使用到的第三方 jar 包:google-gson
具体实现如下:
客户端:
$(function(){
$(":text").blur(function(){
var vuUserName = $.trim($(":text").val());
if(vuUserName != "") {
var url = "user-check.action";
var args = {"vuUserName":vuUserName, "time":new Date()};
$.post(url, args, function(data){
var message = data.message;
$("#error").html(message);
}, "JSON");
}
});
});
服务器端
①UserAction 类的action 方法:注意因为客户端不需要做任何页面跳转,所有该方法无返回值!!!
vuUserName 是通过setter 方法获取到的请求参数
public void checkExist() throws IOException {
VoteUser user = userService.getUser(vuUserName);
Map result = new HashMap();
// 若该用户名已占用
if(user != null) {
result.put("message", "该用户名已占用!");
} else {
// 若该用户名可用
result.put("message", "该用户名可用!");
}
// 向客户端响应一个JSON 提示信息
HttpServletResponse response = ServletActionContext.getResponse();
Gson gson = new Gson();
String jsonStr = gson.toJson(result);
response.setContentType("text/javascript");
response.setCharacterEncoding("UTF-8");
response.getWriter().print(jsonStr);
}
②struts.xml 配置:注意action 方法无返回的result 字符串
method="checkExist">