如何在Eclipse Oxygen 3中创建JSF 2.3动态Web项目并配置版本识别
在Eclipse Oxygen 3中创建并识别JSF 2.3动态Web项目
我来帮你搞定这个问题,毕竟Eclipse Oxygen 3默认确实只支持到JSF 2.2的facet,不过咱们可以通过手动配置来实现2.3版本的支持,步骤分两部分:创建项目和让Eclipse正确识别版本。
一、创建支持JSF 2.3的动态Web项目
方法1:普通动态Web项目手动升级
先按常规步骤创建项目,再修改facet配置:
- 打开Eclipse,点击
File > New > Dynamic Web Project,填写项目名称,注意Servlet版本要选3.1或更高(JSF 2.3要求Servlet 3.1+),完成项目创建。 - 右键项目 →
Properties > Project Facets,先确认已勾选JavaServer Faces,然后点击旁边的「Modify...」按钮。 - 这时候默认版本只有2.2,咱们得先准备好JSF 2.3的库:
- 下载Mojarra 2.3.x(比如2.3.14)的JAR包,或者从Maven仓库获取相关依赖。
- 打开
Window > Preferences > Java > Build Path > User Libraries,点击「New」,命名为「JSF 2.3 Mojarra」,再点击「Add External JARs」把下载的JSF相关JAR加进去。
- 回到Project Facets的JSF配置页面,选择「User Library」,然后选中刚才创建的「JSF 2.3 Mojarra」。如果版本还是显示2.2,直接去项目的
.settings文件夹里找到org.eclipse.wst.common.project.facet.core.xml文件,打开后把<installed facet="jst.jsf" version="2.2"/>改成<installed facet="jst.jsf" version="2.3"/>,保存后刷新项目。
方法2:用Maven创建(更省心)
如果习惯用Maven,这方法更简单:
- 创建Maven Web项目(
File > New > Maven Project,选择maven-archetype-webapp)。 - 在
pom.xml里添加JSF 2.3的依赖:
<dependency> <groupId>org.glassfish</groupId> <artifactId>javax.faces</artifactId> <version>2.3.14</version> <scope>compile</scope> </dependency>
- 右键项目 →
Maven > Update Project,等待依赖下载完成。 - 打开
Project Facets,勾选JavaServer Faces,这时候Eclipse应该会自动识别到2.3版本,直接选择即可,也可以手动关联Maven的依赖库。
二、让Eclipse正确识别JSF 2.3版本
做完上面的步骤后,还得确保Eclipse的工具能识别到2.3:
- 确认Facet配置:检查
.settings/org.eclipse.wst.common.project.facet.core.xml里的JSF版本确实是2.3,这是Eclipse识别版本的核心配置。 - 更新faces-config.xml:打开项目里的
faces-config.xml,把命名空间和版本改成2.3的,这样Eclipse的代码提示等工具就会支持2.3特性了:
<?xml version="1.0" encoding="UTF-8"?> <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"> </faces-config>
- 检查Build Path:右键项目 →
Build Path > Configure Build Path,确认Libraries里引用的是JSF 2.3的JAR(Maven项目会自动处理,手动项目要确保选的是刚才创建的User Library)。 - 刷新项目:右键项目 →
Refresh,或者在Project Facets里点击「Apply」,让Eclipse重新加载配置。
小提醒
- 一定要选Servlet 3.1+版本,不然JSF 2.3的一些特性(比如CDI集成)没法用,Eclipse也可能不让你设置2.3的facet。
- 如果Eclipse的JSF工具还是没反应,可以试试清理项目(
Project > Clean),一般就能解决识别问题。
内容的提问来源于stack exchange,提问作者Verticon
相关产品推荐
相关产品推荐

