Spring MVC返回自定义HTTP状态代码(无错误)


问题内容

在Spring MVC @RequestMapping批注中,我将返回JSP页面名称作为结果。这将返回HTTP状态代码200
OK。如何将状态代码更改为创建的201?

@ResponseStatus不起作用。另外,由于我只需要返回自定义JSP页面,所以HttpServletResponse将无法工作。

@RequestMapping(method = RequestMethod.POST)
public String addPhone(@ModelAttribute("phone") Phone phoneVO) {
                phoneManager.addPhone(phoneVO);
                return "redirect:/phone";
}

问题答案:

好的,我找到了解决方案:

response.setStatus(HttpServletResponse.SC_CREATED); return "phonePage";

如@SotiriosDelimanolis所述,重定向将覆盖setStatus中的值。因此,不是直接重定向,而是直接调用JSP页面(同时还要重新发送参数)。

我猜重定向,状态必须是HTTP OK。