TyuIn 2022-01-03 17:57 采纳率: 100%
浏览 47
已结题

SprinBoot 2.6.2 出现的奇葩问题

SpringBoot 2.6.2 中UrlPathHelper 中的 removeSemicolonContent 为 true,按理来说应该使得 MatrixVariable 无法使用才对,但是却离奇地可以使用,打印 removeSemicolonContent 的值确实为 true,请各位博友解答?

@GetMapping("/cars/{path}")
    public Map<String, Object> carsSell(@MatrixVariable("low") Integer low,
                        @MatrixVariable("brand") List<String> brand,
                        @PathVariable("path") String path){
        Map<String,Object> map = new HashMap<>();

        System.out.println(new UrlPathHelper().shouldRemoveSemicolonContent());

        map.put("low",low);
        map.put("brand",brand);
        map.put("path",path);
        return map;
    }

img

img

  • 写回答

1条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-01-03 18:55
    关注

    springboot 2.6.2 使用的 spring framework 版本是 5.3,5.3 的实现方式和 5.2 的实现方式有一些不同,5.3 版本虽然默认 UrlPathHelper 移除路径中的矩阵变量,但这只会对路径匹配产生影响,路径匹配后会继续使用请求 URI 解析矩阵变量,具体可以参见源码 RequestMappingInfoHandlerMapping#extractMatchDetails(PathPatternsRequestCondition, String, HttpServletRequest)

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月11日
  • 已采纳回答 1月3日
  • 创建了问题 1月3日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真