将平台升至 Spring 5.3.9+velocity2.3+velocity-tools3.1

在 Spring 5.3.9下升级 Velocity 1.7.x 至 velocity2.3 + velocity-tools3.1 出现的问题,记录中...

spring-webmvc-4.3.9.RELEASE.jar 中 org/springframework/web/servlet/view/velocity 下
VelocityConfig.java
VelocityConfigurer.java
VelocityLayoutView.java
VelocityLayoutViewResolver.java
VelocityToolboxView.java
VelocityView.java
VelocityViewResolver.java
spring.vm
和 spring-context-support-4.3.9.RELEASE.jar中 org/springframework/ui/velocity下
SpringResourceLoader.java
VelocityEngineFactory.java

修改部分源码 其中VelocityToolboxView.java类中 第40行,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected Context createVelocityContext(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response)
    throws Exception
  {
    ChainedContext velocityContext = new ChainedContext(new VelocityContext(model), getVelocityEngine(), request, response, getServletContext());
    if (getToolboxConfigLocation() != null)
    {
      ToolboxManager toolboxManager = ServletToolboxManager.getInstance(
        getServletContext(), getToolboxConfigLocation());
      Map<String, Object> toolboxContext = toolboxManager.getToolbox(velocityContext);
      //将Map<?, ?>替换成了Map<String, Object>,避免类型转换错误
      velocityContext.setToolbox(toolboxContext);
    }
    return velocityContext;
  }

问题1:commons-digester-2.x 升级至 commons-digester3.x

代码改变

Velocity 1.x -> ViewToolInfo toolinfo = (ViewToolInfo) digester.peek();

Velocity 2.x -> ViewToolInfo toolinfo = (ViewToolInfo) getDigester().peek();

问题2:Apache Commons Lang 2.x 替换为 Apache Commons Lang 3.x

问题3:commons-collections-3.x 替换为 commons-collections-4.x

问题4:$velocityCount失效 替换为 $foreach.count

问题5:configuration key 'resource.loader' has been deprecated in favor of 'resource.loaders'

posted @   锐洋智能  阅读(1508)  评论(1编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· Windows 提权-UAC 绕过
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2017-12-13 Caused by: java.lang.IllegalArgumentException: Can not set int field reyo.sdk.enity.xxx.xxx to java.lang.Long
2017-12-13 MySQL 普通索引、唯一索引和主索引
点击右上角即可分享
微信分享提示