2010-04-15 21 views
7

Estoy tratando de crear un componente compuesto para usar en mi aplicación Seam, y tengo problemas con el componente "hello, world" más simple.Componente compuesto JSF

He colocado un archivo llamado hello.xhtml {Desplegar en 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> 

Ahora en home.xhtml, que se encuentra en la raíz de mi webapp ({desplegar} 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> 

Pero mi "hola, mundo" no se visualiza, y no consigo ningún mensaje de error, incluso cuando se enciende en el registro de nivel de depuración para las categorías com.sun y javax.faces.

He verificado que el directorio de recursos está en el lugar adecuado, ya que la adición de los recursos del directorio/images/test.jpg, a continuación, añadir esto a home.xhtml:

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

Los resultados en la imagen que se está desplegado. Simplemente no sé por qué JSF no está recogiendo mi archivo xhtml del directorio de saludo.

¿Alguna idea?

Respuesta

3

Intenta ponerlo en META-INF/resources, no solo en resources.

+0

Gracias por tu sugerencia, pero me han tratado todos los siguientes lugares sin suerte: '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 (completamente no estándar) Me preocupa que no obtenga ningún resultado de depuración/información para esto. No tengo idea de dónde JSF/Seam está buscando el directorio de recursos. – purecharger

+0

Pruebe application.ear/application.war/WEB-INF/classes/META-INF/resources. No tengo experiencia con la parte application.ear, pero aquí hay un ejemplo de una aplicación web que usa un componente compuesto: http://confluence.highsource.org/x/FoBM. El componente xhtml está en guerra/WEB-INF/classes/META-INF/resources. También asegúrese de estar utilizando JSF 2.0, no JSF 1.2. Y no, no recibe ningún mensaje de error, los espacios de nombres no procesados ​​se tratan de una manera "laxa". – lexicore

+0

Lamentablemente, la ubicación tampoco funciona. La ubicación del recurso JSF2 se ve correctamente: actualicé la publicación original para mostrar que puedo hacer referencia a recursos como la biblioteca de "imágenes". Pero el componente compuesto no se ve. – purecharger

Cuestiones relacionadas