Jsf 如何从Facelets和web.xml引用JAR中的Facelets标记库?

Jsf 如何从Facelets和web.xml引用JAR中的Facelets标记库?,jsf,facelets,taglib,myfaces,Jsf,Facelets,Taglib,Myfaces,我正在使用ApacheMyFacesCommons标记库 如何将其添加到web.xml中?commons JAR是通过Maven下载和解析的 XHTML(我认为这是正确的): web.xml: <context-param> <!-- To add additional tab libs --> <param-name>facelets.LIBRARIES</param-name> <param-value>??.xml

我正在使用ApacheMyFacesCommons标记库

如何将其添加到web.xml中?commons JAR是通过Maven下载和解析的

XHTML(我认为这是正确的):


web.xml:

<context-param>
  <!-- To add additional tab libs -->
  <param-name>facelets.LIBRARIES</param-name>
  <param-value>??.xml</param-value>
</context-param>

facelets.LIBRARIES
.xml
编辑:我之所以进入这一步,是因为我试图错误地引用Maven依赖项,在这样做的过程中,我试图从Apache下载jar并从我自己的存储库管理器托管它。我试图自己托管的jar不包含taglib jar

正确获得依赖项后,一切正常,不需要像balusC推荐的那样显式定义taglib。谢谢

<dependency>
    <groupId>org.apache.myfaces.commons</groupId>
    <artifactId>myfaces-commons</artifactId>
    <version>1.1.2</version>
</dependency>

org.apache.myfaces.commons
MyFacesCommons
1.1.2

该库的
*.taglib.xml
文件已经在JAR的
/META-INF
中。您不需要向
web.xml
添加任何内容。如果JAR位于webapp的运行时类路径中,那么taglib将被自动发现。另见本标准第10.3.2章:

10.3.2 Facelet标签库机制

运行时必须支持Facelet标记库描述符的两种发现模式

  • 按照第11.1.3节“应用程序配置参数”的规定,通过web.xml中的声明

  • 通过自动发现,将标记库描述器文件放在web应用程序类路径的jar中,命名文件,使其以
    “.taglib.xml”
    结尾,不带引号,并将文件放在 jar文件

因此,您只需确保JAR确实位于webapp的运行时类路径中—通常是
/WEB-INF/lib
文件夹


如果您在使用该库时遇到问题,则是由您认为以外的原因造成的。

您好,巴卢斯克,正如您所怀疑的,这是由于另一个问题造成的,您是对的。非常感谢。不客气。将来,试着问如何解决问题,而不是如何找到解决方案(这可能不一定是你真正问题的正确解决方案)。
<dependency>
    <groupId>org.apache.myfaces.commons</groupId>
    <artifactId>myfaces-commons</artifactId>
    <version>1.1.2</version>
</dependency>