@ResponseBody
@ResponseBody的作用是将java对象转为json格式的数据,常用于ajax异步请求中。
在RequestMapping中 return返回值默认解析为跳转路径,如果你此时想让Controller返回一个字符串或者对象到前台 就会报404 not response的错误。
在这里插入代码片当加上@ResponseBody注解后不会解析成跳转地址 会解析成相应的json格式的对象 集合 字符串或者xml等直接返回给前台 可以通过 ajax 的“success”:fucntion(data){} data直接获取到。
$.ajax({
url:'login',
data:{username:username,password:password,cpacha:cpacha},
type:'post',
datatype:'json',
success:function(data){
if(data.type=='success'){
window.location='index';
}
else{
removeClass(document.querySelector(".login"), "active")
removeClass(document.querySelector(".sk`z`-rotating-plane"), "active")
document.querySelector(".login").style.display = "block"
alert(data.msg);
}
}
});
```javascript
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public ModelAndView login(ModelAndView model) {
model.setViewName("system/login");
return model;
}
@RequestMapping(value="/login",method=RequestMethod.POST)
public Map<String,String>loginAct(User user,String cpacha){
Map<String,String> ret= new HashMap<String,String>();
if(user==null) {
ret.put("type", "error");
ret.put("msg", "请填写用户信息");
return ret;
}
if(StringUtils.isEmpty(cpacha)) {
ret.put("type", "error");
ret.put("msg", "请填写验证码!");
return ret;
}
if(StringUtils.isEmpty(user.getUsername())) {
ret.put("type", "error");
ret.put("msg", "请填写用户名!");
return ret;
}
if(StringUtils.isEmpty(user.getPassword())) {
ret.put("type", "error");
ret.put("msg", "请填写密码!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "登录成功!!");
return ret;
}