我是否需要jsf-api或jsf-impl或两者来开始使用JSF?他们为什么不合并?

Bha*_*sht 6 jsf jar

我已经开始研究JSF了,我想知道在我们的类路径中包含什么是JAR以开始使用JSF.难道jsf-api还是jsf-impl?或者我们必须包括两者?如果它们都是为什么他们没有合并?

Bal*_*usC 8

我假设您没有使用像WildFly,TomEE,GlassFish等真正的Java EE应用程序服务器,但是像Tomcat这样的准系统JSP/Servlet容器确实没有随机附带JSF,因此您不得不手动安装它.否则,所有这些与JAR的大惊小怪都是不必要的.


是jsf-api还是jsf-impl?或者我们必须包括两者?

你需要两者.在jsf-api.jar包含了API,它存在的几乎只有抽象类和接口的.它是javax.faces.*您在代码中导入和使用的类型.在jsf-impl.jar包含了实现,它存在真正的辛勤工作的代码.该实现通过API中的工厂在内部加载.它是com.sun.faces.*不应在代码中直接导入和使用的类.如果这样做,那么您将无法切换到不同的JSF实现,例如MyFaces.


如果它们都是为什么他们没有合并?

存在合并JAR的javax.faces.jar.你可以选择这一个而不是两个松散的JAR.只要浏览到下载的部分钻嘴鱼科的主页,找到链接到Maven仓库javax.faces.jar文件.目前最新的Mojarra版本是2.2.11,所以选择javax.faces-2.2.11.jar.

也可以看看: