ModelAttribute 注释 不支持
Closed this issue · 8 comments
keepcleargas commented
@ModelAttribute 貌似无法支持。
例如
@PostMapping(value = "/login", produces = "application/json; charset=utf-8")
public AdminVo login(HttpServletRequest request, @ModelAttribute AdminLoginForm adminLoginForm) throws BussException {
return adminService.login(request, adminLoginForm);
}
无法读取 AdminLoginForm 的参数
WhiteCosmos commented
@ModelAttribute 这个注解的功能我不是很了解 所以暂时没有支持
keepcleargas commented
@ModelAttribute 这个注解的功能我不是很了解 所以暂时没有支持
好的,这个注解的form,就是 post请求的参数。spring里用到的频次 不低吧。
WhiteCosmos commented
实际请求的时候 这个 AdminLoginForm 对象里面的属性就是以 application/x-www-form-urlencoded 的格式传参的吗?存在其它用法吗?
keepcleargas commented
是的
实际请求的时候 这个 AdminLoginForm 对象里面的属性就是以 application/x-www-form-urlencoded 的格式传参的吗?存在其它用法吗?
是的,@ModelAttribute 是 以 application/x-www-form-urlencoded 的方式提交的表单,有时候,路径中的PathValue 也会 映射到这个 表单的同名属性里。
例如:
/**
* 删除角色
*
* @param roleDeleteForm
* @return
* @throws BussException
*/
@PostMapping(value = "/roles/{roleId}/delete", produces = "application/json; charset=utf-8")
public void deleteAdminRole(@Valid @RequestBody RoleDeleteForm roleDeleteForm) throws BussException {
adminService.deleteRole(roleDeleteForm);
}
还有一种注释 也非常常见的是 @requestbody ,后面也是一个Form,这个就是 以JSON 格式提交的传参了。不知道是否支持了。
WhiteCosmos commented
@requestbody 是支持的 并且在没有提供Content-Type的情况下 会默认为application/json类型 同时标注为 BODY 类型的参数
WhiteCosmos commented
那我就在下个小版本里修复一下了
keepcleargas commented
那我就在下个小版本里修复一下了
期待修复
WhiteCosmos commented
@keepcleargas 1.2.3 版本已修复这个问题