Java 重定向到@ResponseBody?
我有一些关于通过spring security进行ajax登录的信息:Java 重定向到@ResponseBody?,java,json,spring,spring-mvc,spring-security,Java,Json,Spring,Spring Mvc,Spring Security,我有一些关于通过spring security进行ajax登录的信息: @RequestMapping(value="/entry.html", method=RequestMethod.GET) public String getEntry(){ return isAuthenticated()? "redirect:/logout.jsp":"entry"; } @RequestMapping(value="/postLogout.html", method=RequestMeth
@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的调用时,它将检查并选择
- 重定向到spring security处理的
=>,然后重定向到/logout.jsp
=>响应JSON/postLogout.html
- 解析为查看
,这是一个只包含json字符串的jsp条目
我想知道我是否可以在
getEntry()
中使用@ResponseBody
,而不用jsp只写json值?从Spring返回json最简单的方法是
我将创建一个自定义返回对象:
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将负责将对象序列化为JSON并设置正确的mime类型。有关完整的工作版本,请参阅