![](/img/trans.png)
[英]NETBEANS 7.4: “no tag was defined for name: register” + “No library found for namespace http://java.sun.com/jsf/composite/my_composite_component”
[英]<my:foo> Tag Library supports namespace: http://java.sun.com/jsf/composite/mycomponents, but no tag was defined for name: foo
我有一個名為<my:foo>
的復合組件,我正在構建另一個名為<my:bar>
復合組件。 但是當我嘗試在<my:foo>
的<cc:implementation>
中使用<my:foo>
<my:bar>
,拋出了以下異常:
<my:foo>
標記庫支持命名空間: http : //java.sun.com/jsf/composite/mycomponents ,但沒有為name定義標記:foo
這是怎么造成的,我該如何解決?
這是由Mojarra 2.1.8中引入的錯誤引起的,在2.1.9中繼續,並在2.1.10中修復。 此錯誤導致復合組件自己的XML命名空間無法在<ui:component>
/ <ui:composition>
/ <html>
/ etc等根XML元素中聲明,如下所示:
<ui:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:my="http://java.sun.com/jsf/composite/mycomponents"
>
<cc:interface>
...
</cc:interface>
<cc:implementation>
<my:foo />
</cc:implementation>
</ui:component>
當您嘗試在<cc:implementation>
嵌套<my:foo>
時,這將導致以下異常。
<my:foo>
標記庫支持命名空間: http : //java.sun.com/jsf/composite/mycomponents ,但沒有為name定義標記:foo
除了降級到2.1.7並等待2.1.10發布之外,當前的解決方法是將XML名稱空間聲明移動到<cc:implementation>
。
<ui:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite"
>
<cc:interface>
...
</cc:interface>
<cc:implementation xmlns:my="http://java.sun.com/jsf/composite/mycomponents">
<my:foo />
</cc:implementation>
</ui:component>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.