当前位置: 首页 > news >正文

ModelAttribute 老革命遇上新问题

背景:
框架中的定义了一个统一参数,
public class OperationParam {String operation;...Map<String, Object> arg;
}

这个结构用于接收常规的RequestBody没有任何问题,但是我的一个新场景是需要上传文件,于是定义了一个新类继承他

public class OperationWithFileParam extends OperationParam{ /** * 文件参数 */ @NonNull MultipartFile file; }

controller如下:

    @PostMapping(value = "/invoke", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public SingleResponse<Object> invokeMethodWithFile(@Validated @ModelAttribute OperationInvokeWithFileCmd cmd) {return SingleResponse.success(invokeOperationService.invokeMethod(cmd, false));}

OK,前端正常传入form-data参数,这时候问题来了:
报错:无法将String转换为一个map

即便是在OperationWithFileParam 中写了

示例:

public void setArg(String arg){

setArg(JsonUtils.parseObject(arg, Map.class));
}
也不行,还没执行到这里就报错了

为什么直接使用 arg 参数会报错
  • 表单提交的 arg 参数是 String 类型(JSON 字符串)
  • Spring 发现 Bean 有 setArg(Map) 方法,认为 arg 属性应该是 Map 类型
  • Spring 尝试将 String 转换为 Map,但没有合适的转换器
  • 于是在 ModelAttributeMethodProcessor.resolveArgument() 时抛出 typeMismatch 异常
  • 根本没有机会进入你重载的 setArg(Object) 方法

 

http://www.jsqmd.com/news/320569/

相关文章:

  • openPLC REST API 参考(英译中)
  • AI写论文有妙招!4款AI论文写作工具,写职称论文如鱼得水!
  • 新手入门ClaudeBox:国内合规使用Claude,避坑指南+快速上手
  • 孤能子视角:“组织行为学“
  • AI写论文宝藏!4款高效AI论文生成工具,告别论文写作困境!
  • 计算机毕设Java基于Spring的融媒体交互学习平台的设计与实现 基于Spring框架的Java融媒体交互学习系统开发与应用 Java Spring技术驱动的融媒体交互学习平台构建与实践
  • 2026年大连广告公司推荐:多场景实战评测,解决预算与效果不匹配痛点
  • 孤能子视角:“组织行为学–领导力“
  • 第 1 节 | 技术人创业第一课:股权怎么分才不散伙?
  • AI写论文新选择!这4款AI论文写作工具,解决写论文的各种难题!
  • 一文吃透ClaudeBox:AI编码开发的安全隔离与高效协作神器
  • 2026年质量好的防爆风机/一级能效风机厂家推荐及采购指南
  • 电商品牌如何实现高效增长?2026年成都广告公司推荐与评价,破解ROI不稳定痛点
  • AI写论文实用攻略!4款AI论文生成工具,让写论文不再是噩梦!
  • 大连广告公司哪家效果好?2026年服务商评测排名与推荐,直击本地化营销痛点
  • 告别找书内耗!静流书站(windowsfront.com)赋能程序员高效进阶
  • 2026年比较好的BED防烟防火阀/FVDH-280度防火阀最新TOP品牌厂家排行
  • AI写论文神器来袭!4款AI论文写作工具,让毕业论文不再难写!
  • 2026年质量好的不锈钢定风量变风量阀/通风柜变风量阀最新TOP厂家排名
  • 2026年评价高的MEE自动复位防火阀/不锈钢防火阀TOP品牌厂家排行榜
  • 2026年成都广告公司推荐:本地市场服务支持深度排名,涵盖线上线下多运营场景
  • AI写论文宝藏推荐!4款AI论文生成工具,解决写职称论文难题!
  • 泉州广告公司哪家效果有保障?2026年服务商推荐与排名,应对获客成本高与转化难痛点
  • 2026年大型集团资产管理系统有哪些 城投系统精选推荐
  • 深耕编程学习:静流书站(windowsfront.com)藏着开发者的进阶密码
  • 2026年多业态资产管理系统推荐:商业、地产、产业园类
  • AI元人文构想:悬鉴《替代,还是创造?——人工智能浪潮下的就业突围》
  • 线上营销效果不佳怎么办?2026年成都广告公司推荐与评价,解决策略与执行痛点
  • BlockingQueue:阻塞操作与条件队列的高效结合
  • 2026年比较好的防爆轴流风机/T35轴流风机最新TOP品牌厂家排行