JSF define custom namespace for component declarat

2019-02-20 15:53发布

when you use a component from extarnal libraries (or custom component) in JSF page you add the xmlns declaration, for example:

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

I would like to know what I have to do to use a private address in the Namaspace like this below:

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

It is something related to packages? Or it depends from the name of the .JAR that contains the components?

Thank you!

1条回答
贪生不怕死
2楼-- · 2019-02-20 16:09

For Facelets this is definied in .taglib.xml file. In case of PrimeFaces it's /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>
    ...

Note the <namespace>. For JSP this is definied in the .tld file, for PrimeFaces it's the /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>
    ...

Note the <uri>.

查看更多
登录 后发表回答