我是否需要 jsf-api 或 jsf-impl 或两者才能开始使用 JSF?他们为什么不合并?
Do I need jsf-api or jsf-impl or both to start using JSF? Why are they not merged?
我已经开始学习 JSF,我想知道在我们的类路径中包含什么 JAR 以开始使用 JSF。是 jsf-api
还是 jsf-impl
?或者我们必须包括两者?如果两者都是那么为什么它们不合并?
我假设您没有使用像 WildFly, TomEE, Payara, etc, but a barebones JSP/Servlet container like Tomcat 这样的真正的 Java EE 应用程序服务器,它确实没有随 JSF 一起提供,因此您必须手动安装它.否则,所有这些对 JAR 的大惊小怪都是不必要的。
Is it jsf-api or jsf-impl? Or we have to include both?
两者都需要。 jsf-api.jar
包含 API,它们几乎只存在抽象 类 和接口。它是您在代码中导入和使用的 javax.faces.*
类型。 jsf-impl.jar
包含真正努力工作代码的实现。该实现是通过 API 中的工厂内部加载的。它是 com.sun.faces.*
类,您 而不是 应该直接在您的代码中导入和使用。如果这样做,那么您将无法切换到不同的 JSF 实现,例如 MyFaces。
And if it is both then why they are not merged?
存在一个合并的 JAR,javax.faces.jar
。您可以选择这个而不是两个松散的 JAR。
另请参阅:
- Our JSF wiki page
- JSF implementations and component libraries
- Difference between Mojarra and MyFaces
- In simplest terms, what is a factory?
- How to properly install and configure JSF libraries via Maven?
我已经开始学习 JSF,我想知道在我们的类路径中包含什么 JAR 以开始使用 JSF。是 jsf-api
还是 jsf-impl
?或者我们必须包括两者?如果两者都是那么为什么它们不合并?
我假设您没有使用像 WildFly, TomEE, Payara, etc, but a barebones JSP/Servlet container like Tomcat 这样的真正的 Java EE 应用程序服务器,它确实没有随 JSF 一起提供,因此您必须手动安装它.否则,所有这些对 JAR 的大惊小怪都是不必要的。
Is it jsf-api or jsf-impl? Or we have to include both?
两者都需要。 jsf-api.jar
包含 API,它们几乎只存在抽象 类 和接口。它是您在代码中导入和使用的 javax.faces.*
类型。 jsf-impl.jar
包含真正努力工作代码的实现。该实现是通过 API 中的工厂内部加载的。它是 com.sun.faces.*
类,您 而不是 应该直接在您的代码中导入和使用。如果这样做,那么您将无法切换到不同的 JSF 实现,例如 MyFaces。
And if it is both then why they are not merged?
存在一个合并的 JAR,javax.faces.jar
。您可以选择这个而不是两个松散的 JAR。
另请参阅:
- Our JSF wiki page
- JSF implementations and component libraries
- Difference between Mojarra and MyFaces
- In simplest terms, what is a factory?
- How to properly install and configure JSF libraries via Maven?