【问题标题】:Do I need jsf-api or jsf-impl or both to start using JSF? Why are they not merged?我需要 jsf-api 或 jsf-impl 还是两者都需要才能开始使用 JSF?为什么不合并?
【发布时间】:2015-07-17 08:30:59
【问题描述】:

我已经开始学习 JSF,我想知道在我们的类路径中包含什么 JAR 以开始使用 JSF。是jsf-api 还是jsf-impl?或者我们必须同时包含两者?如果两者都是,那么为什么它们不合并?

【问题讨论】:

  • 应用服务器提供 JSF 实现。如果您碰巧使用了一个,则不需要添加其他内容,除非默认版本不是您需要的。

标签: jsf jar


【解决方案1】:

我假设您使用的不是真正的 Java EE 应用程序服务器,例如 WildFlyTomEEPayara 等,而是像 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。

另见:

【讨论】:

  • 我发现think依赖javax.facesjavax.faces-api2.2这个 jar 的名称不同,但它说这是 Oracle 实现 JSF 2.2 规范的主 POM 文件。
猜你喜欢
  • 2012-10-14
  • 2015-03-11
  • 2012-10-05
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2011-05-30
相关资源
最近更新 更多