Sending redirect from Spring controller
如果返回类型不是URL Handkler方法的String,如何从Spring控制器发送重定向。
1 2 3 4 5 6 7 8 9
| @RequestMapping(value ="/save", method = RequestMethod.POST)
@ResponseBody
public JsonResponse save(@RequestBody FormBean formBean) {
if(condition true)
? Save(formBean)
:"redirect:/anotherUrl";
} |
所以JsonResponse是一个返回类型实际上是一个java类,我如何在这里发送重定向?
-
您可以返回一个ModelAndView,将视图设置为JSONView(或者它的名称是什么),然后返回"默认"视图(我认为它是JspView或类似的东西......查看View JavaDoc并查看实现的内容) 它)
-
你为什么要重定向? 当期望JsonResponse时重定向是不合逻辑的。
-
我没有使用ModelAndView,这就是问题所在。 对于我正在使用JSON响应的所有响应。
-
小子,我正在实现sychronizer令牌。 因此,对于每个请求,我检查令牌,如果匹配,则请求继续,否则将用户重定向到应用程序的主页面。
-
看看我的答案。 这是处理问题的正确方法。
您必须从控制器方法返回ResponseEntity。 它有一个HttpStatus‘ and headers you can set, and a body that is your domain object. To redirect you would normally set the status to FOUND (302) and add a Location`标头,其中包含要重定向的客户端的URL。