闲来无事学习了一下spring mvc 以及2.5、3.0 json使用的差异
spring 2.5 json传输方式
@RequestMapping(value="/judge.do",method=RequestMethod.POST)
public void judge(String username,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
String name = request.getParameter("username");
PrintWriter pwPrintWriter;
UserInfo user=null;
user = new UserInfo();
user.setUsername(name);
JSONObject jsonObject = new JSONObject();
//user是key-value方式
//前台获取的时候采用msg.user.username
jsonObject.put("user", user);
try {
pwPrintWriter=response.getWriter();
if("upxiaofeng".equals(name)){
pwPrintWriter.print(jsonObject.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
前台代码:
function judge(){
var name = document.getElementById("username").value;
$.ajax({
type:"POST",//提交方式
cache:false,//不适用cookies
dataType:"json",
url:"/SpringMvc/judge.do",
data:{username:name},//传入到servlet的值
//如果成功就执行下面的代码
success:function(msg){
var html="<font color='red'>";
if("y"==msg){
html+=msg.user.username+"*用户名已存在,该用户名不可用";
}else{
html+=msg.user.username+"*用户名可用";
}
html=html+"</font>";
$("#judge").html(html);//将生成的html显示到页面上 等价 document.getElementById("dataid").innerHTML=html;
},
error:function(){
alert("找不到URL");
}
});
}
spring 3.0相对要简单多而且也很方便
<pre class="html" name="code">@RequestMapping(value="/judge.do",method=RequestMethod.POST)
public @ResponseBody UserInfo judge(String username,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
String name = request.getParameter("username");
UserInfo user=new UserInfo();
user.setUsername(name);
return user;
}
function judge(){
var name = document.getElementById("username").value;
alert(name);
$.ajax({
type:"POST",//提交方式
cache:false,//不适用cookies
dataType:"json",
url:"/SpringMvc/judge.do",
data:{username:name},//传入到servlet的值
//如果成功就执行下面的代码
success:function(msg){
var html="<font color='red'>";
html+=msg.username+"*用户名已存在,该用户名不可用";
html=html+"</font>";
$("#judge").html(html);//将生成的html显示到页面上 等价 document.getElementById("dataid").innerHTML=html;
},
error:function(){
alert("找不到URL");
}
});
}