Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 更改复合组件';s名称空间_Jsf_Jsf 2_Composite Component_Jsf 2.2 - Fatal编程技术网

Jsf 更改复合组件';s名称空间

Jsf 更改复合组件';s名称空间,jsf,jsf-2,composite-component,jsf-2.2,Jsf,Jsf 2,Composite Component,Jsf 2.2,我有一个包含一些自定义JSF组件的小库(JAR)。其中一些是完全(或部分)在XHTML文件中实现的复合组件,XHTML文件位于META-INF/resources/my components下。要使用其他XHTML文件中的这些组件,我必须使用XML名称空间http://xmlns.jcp.org/jsf/composite/my-components 此库中的其他相关组件使用@FacesComponent(和@facesrender)实现为POJO。要使用这些组件,我必须使用在组件的@Faces

我有一个包含一些自定义JSF组件的小库(JAR)。其中一些是完全(或部分)在XHTML文件中实现的复合组件,XHTML文件位于
META-INF/resources/my components
下。要使用其他XHTML文件中的这些组件,我必须使用XML名称空间
http://xmlns.jcp.org/jsf/composite/my-components

此库中的其他相关组件使用
@FacesComponent
(和
@facesrender
)实现为POJO。要使用这些组件,我必须使用在组件的
@FacesComponent
-注释(属性
名称空间
)中定义的XML名称空间。在这一点上,我可以选择我想要的任何东西(比如
http://my-company.com/my-components

由于我没有发现任何可能更改复合组件的名称空间前缀,并且我不想将POJO的名称空间设置为类似
jcp.org
(我不确定这是否可行),因此我必须使用两个不同的名称空间来使用来自同一库的组件

但是,由于名称空间的不同仅仅是因为实现细节,而且将来可能会以不同的方式实现一个组件,所以这不是我想要的


所以问题是:有没有办法为我的复合组件指定完整的名称空间?当然,我希望使用与其他组件相同的组件(
http://my-company.com/my-components
在示例中)。

只需在命名空间声明下方的
*.taglib.xml
文件中指定复合库名称即可

http://my-company.com/my-components
我的组件

谢谢!我只是想将所有现有的标记添加到taglib中,这些标记以前是自动创建的(使用
@FacesComponent(createTag=true,…)
)。但它可以按预期工作,我可以使用一个公共名称空间。