问题描述
我正在使用旧的 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 添加扩展不是当前返回不同内容类型结果的方法。有人对前进的道路有建议吗?