You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中如何正确传递Collection至JS事件处理器与REST控制器

Spring Boot无刷新表单提交中Set反序列化问题解决

问题场景

我在Spring Boot项目里改造表单实现无刷新提交:用jQuery阻止表单默认提交行为,通过fetch发送PUT请求到REST控制器。但User实体中声明为Set<Role>类型的authorities字段,在请求传递时触发JSON反序列化错误:

无法将字符串值反序列化为HashSet

无效尝试

  • 自定义Formatter处理Collection类型转换
  • 创建jsonify Bean将Collection转为普通字符串格式

解决步骤

  1. 调整jsonify Bean的输出格式:将StringJoiner的前缀设为[、后缀设为],让authorities字段的输出符合JSON数组结构
  2. 修正jQuery元素选择器:
    • 把错误的input[name=department]替换为select[name=department],匹配实际的表单控件类型
    • 使用$(this).find()定位当前表单内的元素,避免全局选择器导致的元素匹配错误
  3. 前端解析JSON数组:在JS代码中对authorities字段的取值执行JSON.parse(),确保传递给fetch请求的是合法的JSON数组类型数据

内容的提问来源于stack exchange,提问作者Sergey Zolotarev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:22:51