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

JSF为组件声明定义自定义命名空间,jsf,namespaces,composite-component,Jsf,Namespaces,Composite Component,当您在JSF页面中使用extarnal库中的组件(或自定义组件)时,您会添加xmlns声明,例如: xmlns:util=”http://java.sun.com/jsf/composite/component/util 我想知道我必须做些什么才能在Namaspace中使用私人地址,如下所示: xmlns:p=“/ui” 它与包有关?或者取决于包含组件的.JAR的名称 谢谢!对于Facelets,这在.taglib.xml文件中定义。对于PrimeFaces,它是/META-INF/PrimeF

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

xmlns:util=”http://java.sun.com/jsf/composite/component/util

我想知道我必须做些什么才能在Namaspace中使用私人地址,如下所示:

xmlns:p=“/ui”

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


谢谢!

对于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>
    ...

注意

在我的项目中没有像/META-INF/primefaces-p.taglib.xml这样的文件,但是我使用的是primefaces?
<?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>
    ...