JSF为组件声明定义自定义命名空间

时间:2010-08-18 10:28:17

标签: jsf namespaces composite-component

当您在JSF页面中使用来自extarnal库(或自定义组件)的组件时,您可以添加xmlns声明,例如:

的xmlns:UTIL =“http://java.sun.com/jsf/composite/component/util

我想知道如何在Namaspace中使用私人地址,如下所示:

xmlns:p =“ http://primefaces.prime.com.tr / ui”

这与包裹有关吗?或者它取决于包含组件的.JAR的名称?

谢谢!

1 个答案:

答案 0 :(得分:3)

对于Facelets,这在.taglib.xml文件中定义。对于PrimeFaces,它是/META-INF/primefaces-p.taglib.xml

<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
        version="2.0">
    <namespace>http://primefaces.prime.com.tr/ui</namespace>
    ...

请注意<namespace>。对于JSP,这在.tld文件中定义,对于PrimeFaces,它是/META-INF/primefaces-p.tld

<?xml version="1.0" encoding="UTF-8"?>
<taglib xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
    <tlib-version>1.2</tlib-version>
    <short-name>p</short-name>
    <uri>http://primefaces.prime.com.tr/ui</uri>
    ...

请注意<uri>