<my:foo> Tag Library supports namespace: http://java.sun.com/jsf/composite/mycomponents, but no tag was defined for name: foo -
i have composite component named <my:foo> , i'm building composite component named <my:bar>. when attempt use <my:foo> inside <cc:implementation> of <my:bar>, following exception been thrown:
<my:foo>tag library supports namespace: http://java.sun.com/jsf/composite/mycomponents, no tag defined name: foo
how caused , how can solve it?
this caused bug introduced in mojarra 2.1.8, continued in 2.1.9 , fixed in 2.1.10. bug causes composite component's own xml namespace cannot declared in root xml element <ui:component>/<ui:composition>/<html>/etc follows:
<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> this result in following exception when attempt nest <my:foo> inside <cc:implementation>.
<my:foo>tag library supports namespace: http://java.sun.com/jsf/composite/mycomponents, no tag defined name: foo
the current workaround, apart downgrading 2.1.7 , waiting 2.1.10 released, move xml namespace declaration <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>
Comments
Post a Comment