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

山东建设监理协会网站汅app下载大全2022

山东建设监理协会网站,汅app下载大全2022,静态网页设计实训报告总结,深圳和胜建设公司Jackson 属性名大小写 Bug 记录 问题描述 在前后端交互过程中#xff0c;前端传递的 JSON 字段名为驼峰风格#xff08;如 qTitle#xff09;#xff0c;后端 Java 实体类字段名也为驼峰#xff08;如 private String qTitle;#xff09;。 但在反序列化时#xff0c;…Jackson 属性名大小写 Bug 记录 问题描述 在前后端交互过程中前端传递的 JSON 字段名为驼峰风格如 qTitle后端 Java 实体类字段名也为驼峰如 private String qTitle;。 但在反序列化时发现后端接收到的 qTitle 字段始终为 null导致如 NotBlank(message 问卷标题不能为空) 校验失败。 现象 前端请求体{qTitle: 2024年员工满意度调查问卷,... }后端实体类public class QuestionnaireCreateRequest {NotBlank(message 问卷标题不能为空)private String qTitle;// ... }实际后端接收到的 qTitle 字段为 null触发校验异常。 排查过程 确认前后端字段名一致均为驼峰。查看 Jackson 源码定位到 legacyManglePropertyName 方法 /*** Method called to figure out name of the property, given * corresponding suggested name based on a method or field name.** param basename Name of accessor/mutator method, not including prefix* (get/is/set)*/protected String legacyManglePropertyName(final String basename, final int offset){final int end basename.length();if (end offset) { // empty name, nopereturn null;}char c basename.charAt(offset);// 12-Oct-2020, tatu: Additional configurability; allow checking that// base name is acceptable (currently just by checking first character)if (_baseNameValidator ! null) {if (!_baseNameValidator.accept(c, basename, offset)) {return null;}}// next check: is the first character upper case? If not, return as ischar d Character.toLowerCase(c);if (c d) {return basename.substring(offset);}// otherwise, lower case initial chars. Common case first, just one charStringBuilder sb new StringBuilder(end - offset);sb.append(d);int i offset1;for (; i end; i) {c basename.charAt(i);d Character.toLowerCase(c);if (c d) {sb.append(basename, i, end);break;}sb.append(d);}return sb.toString();}分析得出 如果属性名第一个字母是小写第二个字母是大写如 qTitleJackson 会将整个属性名转为小写qtitle。这导致 JSON 里的 qTitle 和 Java 字段 qTitle 匹配不上。 解决方案 推荐避免使用单字母大写字母的属性名。 例如将 qTitle 改为 questionTitle。 如必须使用添加 JsonProperty 注解JsonProperty(qTitle) private String qTitle;确保 Jackson 配置为默认大小写敏感命名策略为 LOWER_CAMEL_CASE。团队命名规范建议 尽量使用完整单词命名避免单字母大写字母的驼峰风格。 总结 本次 bug 的根本原因是 Jackson 对属性名的“遗留”处理逻辑遇到小写字母后紧跟大写字母的属性名时会将整个属性名转为小写导致前后端字段无法正确映射。 建议统一命名规范或使用 JsonProperty 明确指定字段名彻底规避此类问题。
http://www.w-s-a.com/news/548945/

相关文章:

  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言
  • 平谷建站推广广告投放平台主要有哪些
  • 网站备案掉了什么原因步骤怎么读
  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app
  • 做外贸需要关注的网站有什么好处宜州设计公司
  • 公司最近想做个网站怎么办陕西科强建设工程有限公司官方网站
  • 生态城门户网站 建设动态it外包收费
  • 网站项目评价老渔哥网站建设公司
  • 哈尔滨寸金网站建设价格178软文网
  • 一个网站建设的成本网站开发过程及要点
  • 监控视频做直播网站中国建筑人才网下载
  • 网站建设公司华网天下买送活动集团网站设计案例
  • 哪些网站比较容易做哪个网站做中高端衣服
  • 做php网站教程wordpress去水印
  • 深圳微网站建设公司哪家好潍坊专业做网站的公司
  • 网站的弹窗广告怎么做软件开发包括
  • 网站开发人员保密做最优秀的自己演讲视频网站
  • 一般做网站要多少钱怎样选择高性价比的建站公司
  • 免费私人网站建设软件高端网站设计平台高端网站设计企业