Кажется, что люди могут реализовать составные компоненты в SWF 2.3.1, но я не могу найти четкой ссылки на то, как это делается. Я следовал базовой структуре составного компонента JSF, но мое приложение SWF, похоже, не распознает пространство имен taglib.
Существует предупреждение инструментария / IDE, но, что более важно, в браузере отображается предупреждение во время выполнения, JSF отображает следующее предупреждение на экране для пользователя:
Warning: This page calls for XML namespace http://java.sun.com/jsf/composite/myjsf declared with prefix mj but no taglibrary exists for that namespace.
Определение компонента:
SRC / основные / ресурсы / myjsf / testComponent.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:attribute name="attr" />
</composite:interface>
<composite:implementation>
#{cc.attrs.attr});
</composite:implementation>
</html>
Ссылка в данном xhtml:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:mj="http://java.sun.com/jsf/composite/myjsf">
<!-- snip -->
<mj:testComponent attr="x" />
</ui:composition>
/WEB-INF
. Таким образом, в основном ресурсы композитов (и JS / CSS / изображений) должны находиться в папке/resources
WebContent (таким образом, эта папка оказывается на том же уровне, что и папка/WEB-INF
). Они вообще не должны попадать в путь к классам, как ресурсы Java. - person BalusC   schedule 22.02.2013