Jsf 更改复合组件';s名称空间
我有一个包含一些自定义JSF组件的小库(JAR)。其中一些是完全(或部分)在XHTML文件中实现的复合组件,XHTML文件位于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
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,…)
)。但它可以按预期工作,我可以使用一个公共名称空间。