我一直在开发一个 Spring Boot 应用程序,该应用程序获取汽车的数据(牌照和品牌)并将其保存到数据库中。到目前为止,它正在工作,但我想在表单提交后重定向到一侧,而不是重定向,它只打印出它应该转到的链接。
这是我的 Controller :
@RequestMapping(value = "/savecar", method = RequestMethod.POST)
public @ResponseBody String saveCar(@RequestParam("licensePlate") String licensePlate, @RequestParam("brand") String brand, HttpServletRequest request) {
Car car = new Car(licensePlate, brand);
carRepository.save(car);
String referer = request.getHeader("Referer");
return "redirect:" + referer;
}
我得到的是:
redirect:http://localhost:1333/cars
在我的浏览器窗口中。 我缺少什么?谢谢!如果您需要更多详细信息,请询问。
最佳答案
正如@lzagkaretos所说,您需要删除@ResponseBody注释。之所以得到一个字符串作为结果而不是包含 @ResponseBody 的重定向,是因为通过将 @ResponseBody 与 @Controller 注释结合起来,您实际上得到 @RestController 并且任何返回的值都将采用 JSON 格式(产生 = MediaType.APPLICATION_JSON_VALUE ) 或您选择作为返回值的任何其他格式。
关于Spring Post Controller重定向仅打印url而不是重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48242044/