重定向至@ResponseBody?

发布于 2024-11-07 13:23:53 字数 715 浏览 0 评论 0 原文

我有一些通过 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,这是一个仅包含json字符串的jsp

我想知道是否可以在getEntry()@ResponseBody code> 不使用 jsp 只写一个 json 值?

I have something for ajax login through spring security:

@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}";
}

The flow is that when receive a call to /entry.html, it will check and choose to

  • redirect to /logout.jsp => handled by spring security and then redirect to /postLogout.html => response JSON
  • resolve to view entry, which is a jsp contain only a json string

I would like to know if I can use @ResponseBody in getEntry() without using an jsp to write just a json value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

许久 2024-11-14 13:23:53

从 Spring 返回 JSON 的最简单方法是 通过 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 将负责将对象序列化为 JSON 并设置正确的 mime 类型。请参阅我之前的回答 以获得完整的工作版本。

The easiest way to return JSON from Spring is through Jackson.

I'd create a custom return Object:

public class MyReturnObject{
private boolean success;
private boolean session;
private boolean logout;
// + getters and setters
// + 3-arg constructor
}

and write the controller method like this:

@RequestMapping(value="/postLogout.html", method=RequestMethod.GET)
@ResponseBody 
public MyreturnObject getPostLogout(){
    return new ReturnObject(true,true,false);
}

Spring+Jackson will take care of serializing the Object to JSON and setting the correct mime type. See this previous answer of mine for a full working version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文