我通过spring security安装了ajax:
@RequestMapping(value="/entry.html", method=RequestMethod.GET)
public String getEntry(){
return isAuthenticated()? "redirect:/logout.jsp":"entry";
}
@RequestMapping(value="/postLogout.html", method=RequestMethod.GET)
public @ResponseBody String getPostLogout(){
return "{success:true, logout:true, session:false}";
}
流程是,当接到对/entry.html的调用时,它将检查并选择
/logout.jsp
=>由spring security处理,然后重定向到/postLogout.html
=>回应JSON entry
,这是一个jsp只包含一个json字符串我想知道我是否可以在@ResponseBody
中使用getEntry()
而不使用jsp来写一个json值?
答案 0 :(得分:1)
从Spring返回JSON的最简单方法是through Jackson。
我创建了一个自定义的返回对象:
public class MyReturnObject{
private boolean success;
private boolean session;
private boolean logout;
// + getters and setters
// + 3-arg constructor
}
并编写如下控制器方法:
@RequestMapping(value="/postLogout.html", method=RequestMethod.GET)
@ResponseBody
public MyreturnObject getPostLogout(){
return new ReturnObject(true,true,false);
}
Spring + Jackson将负责将Object序列化为JSON并设置正确的mime类型。有关完整的工作版本,请参阅this previous answer of mine。