Spring MVC 5.3 URL解析URI模板变量问题

问题描述

我正在使用旧的 Spring Batch Admin 项目(我知道它不再受支持)。我让它与 Spring 框架 5.1 一起使用。我最近升级到 5.3.4 并开始发现问题。 Spring Batch Admin 使用 freemarker 模板生成 html、json 或 RSS用户通过向 URL 添加扩展名(例如“.json”或“.RSS”)来确定输出。没有扩展名的认值是用于 html 渲染。

作为 5.3 (https://spring.io/blog/2020/06/30/url-matching-with-pathpattern-in-spring-mvc) 一部分的 URL 解析更改导致了问题。它将 /job/execution/1.json 与正确的 URL /job/execution/{jobid} 匹配,但 URL 模板变量是 jobid=1.json 而不是 jobid=1。这会导致方法调用出现问题,因为它试图将长变量与字符串“1.json”匹配。

我意识到向 URL 添加扩展不是当前返回不同内容类型结果的方法。有人对前进的道路有建议吗?

解决方法

此处讨论了问题和解决方案。 https://github.com/spring-projects/spring-framework/issues/26119

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...