我正在使用Apache MyFaces Commons Validator TagLib。
我应该如何将其添加到我的web.xml中?公共JAR通过Maven下载并解决。
XHTML(我认为这是正确的):
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui"
**xmlns:mcv="http://myfaces.apache.org/commons/validators"**>
的web.xml:
<context-param>
<!-- To add additional tab libs -->
<param-name>facelets.LIBRARIES</param-name>
<param-value>??.xml</param-value>
</context-param>
编辑:我之所以采取这一步是因为我试图错误地引用了Maven依赖关系,并且这样做,我试图从Apache下载jar并托管它我自己的存储库经理。我试图自己托管的jar不包含taglib jar。
在正确获得依赖关系之后,一切都按照正常情况工作,没有必要明确定义taglib作为balusC所赞扬的内容。 Thankx!
<dependency>
<groupId>org.apache.myfaces.commons</groupId>
<artifactId>myfaces-commons</artifactId>
<version>1.1.2</version>
</dependency>
答案 0 :(得分:12)
该库的*.taglib.xml
文件已在JAR的/META-INF
中。您无需向web.xml
添加任何内容。如果JAR位于webapp的运行时类路径中,则将自动发现taglib。另见JSF 2 specification的第10.3.2节:
10.3.2 Facelet标签库机制
...
运行时必须支持Facelet标记库描述符的两种发现模式
通过web.xml中的声明,如第11.1.3节“应用程序配置参数”中所述
通过将标记库discriptor文件放在Web应用程序类路径的jar中来进行自动发现,命名文件使其以
“.taglib.xml”
结束,不带引号,并将文件放在{ {1}}中的目录 jar文件。...
所以你需要确保JAR确实在webapp的运行时类路径中 - 通常是META-INF
文件夹。
如果您在使用该库时遇到问题,则会由您认为的其他原因引起。