2010-04-15 2 views
7

Я пытаюсь создать составной компонент для использования в приложении Seam, и у меня возникают проблемы с простейшим компонентом «привет, мир».Компонентный компонент JSF

Я поместил файл с именем hello.xhtml в {JBoss развертывания} /application.ear/application.war/resources/greet:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:composite="http://java.sun.com/jsf/composite"> 
<head> 
<title>My First Composite Component</title> 
</head> 
<body> 

<composite:interface> 
    <composite:attribute name="who"/> 
</composite:interface> 

<composite:implementation> 
    <h:outputText value="Hello, #{cc.attrs.who}!"/> 
</composite:implementation> 

</body> 
</html> 

Сейчас в home.xhtml, расположенный в корне моего WebApp ({JBoss развернуть} /application.ear/application.war/home.xhtml):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<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:g="http://java.sun.com/jsf/composite/greet" 
      xmlns:s="http://jboss.com/products/seam/taglib" 
      template="layout/template.xhtml"> 
    <ui:define name="content"> 
    <div id="content"> 
     <g:hello who="World"/> 
     <br/> 
    </div> 
    </ui:define> 
</ui:composition> 

Но мой «привет, мир» не отображается, и я не получаю никаких сообщений об ошибках, даже когда я включаю при регистрации журнала отладки для категорий com.sun и javax.faces.

Я подтвердил, что каталог ресурсов находится в правильном месте, так как добавление ресурсов каталог/изображений/Test.JPG, затем добавив в home.xhtml:

h:graphicImage value="#{resource['images:test.jpg']}"/> 

Результаты в изображении, отображается. Я просто не знаю, почему JSF не собирает мой файл xhtml из каталога приветствия.

Любые идеи?

ответ

3

Попробуйте положить его в META-INF/resources, а не только resources.

+0

Спасибо за ваше предложение, но я попробовал все следующие населенные пункты не повезло: 'application.ear/META-INF/resources 'application.ear/application.war/WEB-INF/resources ' application.ear/application.war/WEB-INF/classes/resources 'application.ear/application.war/META-INF/resources (полностью нестандартный) Я обеспокоен тем, что для этого я не получаю отладочную информацию. Я понятия не имею, где JSF/Seam ищет каталог ресурсов. – purecharger

+0

Попробуйте application.ear/application.war/WEB-INF/classes/META-INF/resources. У меня нет опыта работы с частью application.ear, но вот пример webapp с использованием составного компонента: http://confluence.highsource.org/x/FoBM. Компонент xhtml находится в состоянии войны/WEB-INF/classes/META-INF/resources. Также убедитесь, что вы используете JSF 2.0, а не JSF 1.2. И нет, вы не получаете сообщений об ошибках, обрабатываемые пространства имен обрабатываются «слабым» способом. – lexicore

+0

К сожалению, это место также не работает. Расположение ресурсов JSF2 просматривается должным образом - я обновил исходное сообщение, чтобы показать, что я могу ссылаться на ресурсы, такие как библиотека изображений. Но составной компонент не видно. – purecharger