2013-02-22 4 views
0

Кажется, что люди могут реализовывать составные компоненты в SWF 2.3.1, но я не могу найти четкую ссылку на то, как это делается. Я следил за базовой структурой составного компонента JSF, но мое приложение SWF, похоже, не распознает пространство имен taglib.Внедрение составного компонента JSF в проекте Maven

Существует предупреждение инструментарий/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> 
+1

Это похоже на предупреждение инструментария (IDE/компилятор/etc), а не предупреждение времени исполнения. Что происходит, когда вы действительно запускаете код? Просто убедитесь, что некоторые инструменты не так умны, как они притворяются. – BalusC

+0

Извините, я должен был быть более ясным. Да, есть предупреждение инструментария, но фактическое предупреждение, которое я разместил здесь, находится во время работы в браузере. – Rich

+0

Если вы используете Eclipse/STS, ваша папка «resources» должна находиться в папке WebContent. – rootkit

ответ

5

Папка src/main/resources/myjsf/ не подходит для вашего составного компонента. Композитный компонент в проектах maven должен быть в src/main/webapp/resources/, и в вашем случае это должно быть src/main/webapp/resources/myjsf/testComponent.xhtml.

Как вы используете Maven, вы должны знать, что папка webapp - это папка, содержимое которой будет развернуто в корневой папке вашего приложения, и, таким образом, она будет как-то аналоговой как папка WebContent в стандартном динамическом веб-проекте в Eclipse.

Смежные вопросы