You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSF 1.2升级及jQuery 3.6.3更新:PrimeFaces/RichFaces适配咨询

分步升级指南:从JSF 1.2到兼容最新PrimeFaces/RichFaces版本

一、前置环境检查与清理

  • 确认应用服务器(如Tomcat、JBoss)版本支持目标JSF版本:PrimeFaces 13要求JSF 2.3+,RichFaces最新稳定版(4.7.2.Final)要求JSF 2.0+,建议直接升级到JSF 2.3以获得最佳兼容性
  • 清理项目冗余依赖:删除WEB-INF/lib下的JSF 1.2、RichFaces 3.3.3、PrimeFaces 1.1相关JAR包,避免依赖冲突

二、升级JSF到2.3版本

  1. 更新POM.xml中的JSF依赖(以Mojarra为例):
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.3.15</version>
</dependency>
  1. 修改faces-config.xml的命名空间为JSF 2.3标准:
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd"
              version="2.3">
  1. 清理web.xml中的过时配置:移除JSF 1.2专属的过滤器、Servlet映射,确保JSF 2.3的默认Servlet映射生效

三、二选一:升级PrimeFaces或RichFaces(不建议同时集成)

选项A:升级到PrimeFaces 13.0.0

  1. 在POM.xml中添加PrimeFaces依赖:
<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>13.0.0</version>
    <!-- 若使用Jakarta EE环境,添加以下classifier;Java EE环境则移除 -->
    <classifier>jakarta</classifier>
</dependency>
  1. 更新页面中的PrimeFaces标签库声明:
    旧声明:xmlns:p="http://primefaces.prime.com.tr/ui"
    新声明:xmlns:p="http://primefaces.org/ui"
  2. 替换过时组件:PrimeFaces 13移除了大量旧版组件(如p:slider的旧用法),需对照组件文档替换为新版实现

选项B:升级到RichFaces 4.7.2.Final

  1. 在POM.xml中添加RichFaces核心依赖:
<dependency>
    <groupId>org.richfaces</groupId>
    <artifactId>richfaces</artifactId>
    <version>4.7.2.Final</version>
</dependency>
<dependency>
    <groupId>org.richfaces</groupId>
    <artifactId>richfaces-core</artifactId>
    <version>4.7.2.Final</version>
</dependency>
  1. 移除RichFaces 3.x专属配置:删除richfaces-config.xml中的旧版本配置项,改用4.x的标准配置
  2. 检查组件兼容性:部分RichFaces 3.x组件在4.x中行为有变更,需测试并调整页面代码

四、强制使用jQuery 3.6.3

  1. 禁用组件库内置的旧版jQuery:
    • PrimeFaces:在web.xml中添加参数:
      <context-param>
          <param-name>primefaces.EXCLUDE_JQUERY</param-name>
          <param-value>true</param-value>
      </context-param>
      <context-param>
          <param-name>primefaces.MOVE_SCRIPTS_TO_BOTTOM</param-name>
          <param-value>true</param-value>
      </context-param>
      
    • RichFaces:在web.xml中添加参数:
      <context-param>
          <param-name>org.richfaces.excludeScripts</param-name>
          <param-value>jquery.js</param-value>
      </context-param>
      
  2. 手动引入jQuery 3.6.3:在页面的<h:head>中添加:
<h:outputScript name="https://code.jquery.com/jquery-3.6.3.min.js" target="head" />

也可将jQuery文件放入项目资源目录,使用相对路径引入

五、部署调试

  • 启动应用服务器,优先查看日志中的类加载错误、配置文件异常信息,逐一修复
  • 逐个页面测试AJAX请求、组件渲染功能,重点检查旧代码与新组件库的兼容性
  • 用浏览器开发者工具确认当前页面加载的jQuery版本为3.6.3,且无脚本冲突报错

内容的提问来源于stack exchange,提问作者Daniel Foo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:22:36