POST 上的 Spring 重定向

标签 spring spring-mvc spring-security spring-boot thymeleaf

这是我的更新用户方法:

@ResponseBody
@Transactional
@RequestMapping(value = "/profile/edit/{id}", method = RequestMethod.POST)
public String updateUser(@PathVariable("id") final Integer id, String firstname, String lastname, final RedirectAttributes redirectAttributes) {

    respository.updateFirstname(id,firstname);
    respository.updateLastname(id, lastname);

    redirectAttributes.addFlashAttribute("message", "Successfully changed..");
    return "redirect:/profile";
}

一切正常。还有数据库中的更新。但重定向只是一个字符串,不会更改路径。谁能告诉我为什么?

最佳答案

问题出在 @ResponseBody 注释中。删除后,重定向应按预期工作。通过使用它,您可以覆盖 Spring MVC 的默认行为,并将返回值视为原始响应。

关于POST 上的 Spring 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40631150/

相关文章:

java - 为基于 Spring 的 REST API 编写 Junit 测试用例

spring - @Value 注解和 Environment API 的区别?

java - 基于 Hippo CMS 支持多个子站点的 Spring Security 配置

java - Spring 批处理中的多个读取器/处理器/写入器

java - Spring MVC PUT 方法我得到 HTTP 状态 405,无法重定向到另一个内部 View

java - Spring Bean 未在应用程序启动时初始化

java - jayway jsonpath 使用的默认类型?

java - CSS 文件未加载到 Maven 元素中

java - 如何使用带有默认 java 构建包的 Tomcat 服务器在 Ibm Bluemix 中强制实现 Https 连接?

java - 在 docker 中启动 spring session + redis 时出错