首页 > 解决方案 > Spring MVC 控制器方法签名中的域类型不起作用

问题描述

将 Spring Boot 2.3.0.RELEASE 更新为 2.3.1.RELEASE 后,domian 类转换在控制器方法中停止工作。

这是参考控制器,在 Spring Boot 2.3.0.RELEASE 之前它工作得很好

@Controller 
@RequestMapping("/users")
class UserController {

  @RequestMapping("/{id}")
  String showUserForm(@PathVariable("id") User user, Model model) {

    model.addAttribute("user", user);
    return "userForm";
  }
}

在 2.3.1.RELEASE 中,当我提出以下请求时,出现以下错误

GET /users/<userid>

2020-06-17 13:07:12.780 WARN 574637 --- [XNIO-1 task-3] .wsmsDefaultHandlerExceptionResolver:已解决 [org.springframework.web.method.annotation.MethodArgumentConversionNotSupportedException:无法转换“java.lang”类型的值.String' 到所需类型'com.xxx.User';嵌套异常是 java.lang.IllegalStateException:无法将类型“java.lang.String”的值转换为所需类型“com.xxx.User”:找不到匹配的编辑器或转换策略]

标签: javaspring-boot

解决方案


您可以更新到“昨天”发布的 Spring Boot 2.3.2 。这应该可以解决您的问题。

它包含对Spring Data Neumann-SR2的更新。此版本列出了您的相关 bug 票的修复版本。


推荐阅读