让 Spring Framework7.0.7 支持 velocity

要让 Spring 7.x(基于Jakarta EE)支持 Velocity,核心方案是将官方提供的 velocity-tools-view 从普通版替换为 jakarta,以解决Servlet API包名变更导致的兼容性问题。

核心解决方案

其实操作步骤非常简单,关键在于替换一个JAR包:

  1. 保留原有的 velocity-engine-corevelocity-tools-generic,这两个核心包不需要改动。

  2. 替换 velocity-tools-view,将标准的 velocity-tools-view-3.1.jar 换为 velocity-tools-view-3.1-jakarta.jar

这个 jakarta 版本是专门为了适配新规范而构建的,它内部引用的 Servlet 接口是 jakarta.servlet 包,能完美兼容 Spring 7.x。

详细操作步骤

为了确保配置无误,你可以参考以下步骤和配置:

    • Maven依赖配置
      在你的 pom.xml 中,需要显式地排除对旧 javax.servlet 的传递依赖,并引入 jakarta 版的核心视图工具包。

      xml
      <!-- Velocity 核心引擎 -->
      <dependency>
          <groupId>org.apache.velocity</groupId>
          <artifactId>velocity-engine-core</artifactId>
          <version>2.4.1</version>
      </dependency>
      <!-- Velocity Tools 通用模块 -->
      <dependency>
          <groupId>org.apache.velocity.tools</groupId>
          <artifactId>velocity-tools-generic</artifactId>
          <version>3.1</version>
      </dependency>
      <!-- Velocity Tools 视图模块 (Jakarta版) -->
      <dependency>
          <groupId>org.apache.velocity.tools</groupId>
          <artifactId>velocity-tools-view</artifactId>
          <version>3.1</version>
          <classifier>jakarta</classifier> <!-- 重点:通过classifier指定jakarta版本 -->
      </dependency>
    • Spring配置检查
      由于 Spring 7.x 对视图解析器的内部实现做了调整,你需要手动配置 VelocityViewResolverVelocityLayoutViewResolver。请确保在配置视图解析器时,让它使用正确的 VelocityViewVelocityLayoutView 类,这些类在 jakarta 版的 JAR 包中已得到适配。

velocity-engine-core-2.4.1.jar,velocity-tools-generic-3.1.jar文件不用动只用升级一下 velocity-tools-view-3.1.jar 为 velocity-tools-view-3.1-jakarta.jar 即可

ReYo_2026-05-28_20-24-37

 

posted @ 2026-05-28 10:40  锐洋智能  阅读(1)  评论(0)    收藏  举报