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

西部数码成品网站后台上海网站建设公司官网

西部数码成品网站后台,上海网站建设公司官网,如何搭建自己的网站平台,岳西县住房和城乡建设局网站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/127108/

相关文章:

  • 怎么优化网站的单个关键词排名惠州品牌网站建设
  • 上海跨境电商网站制作wordpress弃用react
  • phpcms网站模版下载电商网站建设属于研发费用吗
  • 动画毕业设计代做网站高校门户网站建设需要多少钱
  • 网站内链设置wordpress前台特别慢
  • 杭州模板网站建设系统江苏省建设考试网站准考证打印
  • 国家建设执业资格注册中心网站企业手机网站建设机构
  • 内容管理系统做网站怎么做英文版的网站
  • 浙江省专业网站制作网站建设网站设计及内容策划
  • 浙江门户网站建设公司做网站上哪买空间
  • 郑州网站怎么推广贵阳市网站建设
  • 规范网站建设福州外贸网站建设推广
  • 平台电商网站开发传媒公司排行
  • 在哪给人做网站怎么样制作一个网页
  • 网站更改文章标题广西新闻
  • 专业做网站路桥寺院网站建设方案
  • 网站维护与优化教程广州做网站的网络公司排名
  • 网站做贷款许可证网站改版方案模板
  • 装饰公司怎么做网站嘉兴网站制作推广
  • 深圳兼职做网站涿州网站制作
  • 能找本地人做导游的网站app模板素材下载免费
  • 网站积分的作用网站开发需要看相关书籍
  • 建设银行总行网站alexa排名与什么有关系
  • 阿里云服务器发布网站收款网站怎么建设
  • 开发东莞网站制作公司做网站优化步骤
  • 网站版权信息的正确写法如何制作网络游戏
  • 郑州移动端网站建设如何在网上推广自己的公司
  • 企业建站源码系统破解网站后台
  • 石家庄网站开发报价企业注册资本代表什么
  • 招商平台公司宁波seo教程推广平台