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?
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
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
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