Es posible poner JSF2 Facelets archivos con contenidos comunes dentro de un FRASCO para uso de otras aplicaciones web dentro de por ejemplo,<ui:composition template>, <ui:include src>, <cc:implementation>, etc? Si sí, ¿cómo puedo lograr esto? Es alguna configuración adicional necesario?

OriginalEl autor Fabio | 2010-08-20

3 Comentarios

  1. 30

    Usted puede poner recursos en común en la /META-INF/resources carpeta de la JARRA de la que es ser tratado como /WEB-INF/resources carpeta de la GUERRA.

    E. g.

    CommonWebProject
     |-- META-INF
     |    |-- resources
     |    |    `-- common
     |    |         |-- css
     |    |         |    `-- some.css
     |    |         |-- js
     |    |         |    `-- some.js
     |    |         |-- images
     |    |         |    `-- some.png
     |    |         |-- components
     |    |         |    `-- somecomposite.xhtml
     |    |         |-- someinclude.xhtml
     |    |         `-- sometemplate.xhtml
     |    |-- faces-config.xml
     |    `-- MANIFEST.MF
     :

    Los recursos de la JARRA a continuación, están disponibles de la siguiente manera:

    <... xmlns:common="http://xmlns.jcp.org/jsf/composite/common/components">
    <h:outputStylesheet library="common" name="css/some.css" />
    <h:outputScript library="common" name="js/some.js" />
    <h:graphicImage library="common" name="images/some.png" />
    <common:somecomposite />
    <ui:include src="/common/someinclude.xhtml" />
    <ui:composition template="/common/sometemplate.xhtml" />
    ...

    Si desea activar el JSF2 anotación escáner de modo que usted puede poner @ManagedBean, @FacesValidator, @FacesConverter y consortes en ese proyecto y, a continuación, crear un JSF2 compatible /META-INF/faces-config.xml de archivo:

    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
        version="2.0">
    </faces-config>

    La Facelets recurso de resolución sólo es necesario si los recursos no están en /META-INF/resources por alguna razón, o cuando no la estés utilizando Servlet 3.0, pero 2.5, o cuando usted está utilizando una temprana JBoss/JSF versión que tiene errores en el META-INF recursos de resolver. Véase también Cómo crear un sistema modular de JSF 2.0 de la aplicación? para un ejemplo concreto.

    Este enfoque no ha trabajado en JBoss 6 (Mojarra 2.0.1). He probado en Tomcat 7 y Glassfish 4, y ambos trabajan. JBoss lanza esta excepción: java.io.FileNotFoundException org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:369)
    stackoverflow.com/a/6201044
    Impresionante! Ahora funciona como un encanto! Muchas gracias @BalusC.
    Eres bienvenido.
    Hey @BalusC debo poner JSF y otras dependencias en mi maven frasco proyecto? ¿Cómo puedo hacer que el IDE de reconocer la taglibs e de todo lo demás?

    OriginalEl autor BalusC

  2. 4

    Sí, usted puede extender la com.sol.las caras.facelets.impl.DefaultResourceResolver a proporcionar los recursos para JSF.

    Una solución genérica es la siguiente:

    En su pom.xml agregar:

        <dependency>
            <groupId>com.intersult</groupId>
            <artifactId>jsf-desktop</artifactId>
            <version>1.1-SNAPSHOT</version>
        </dependency>
    
        <repository>
            <id>intersult-repo</id>
            <name>Intersult Repository</name>
            <url>https://intersult.com/svn/public/maven</url>
        </repository>

    O simplemente agregar https://intersult.com/svn/public/maven/com/intersult/jsf-desktop/1.1-SNAPSHOT/jsf-desktop-1.1-SNAPSHOT.jar a su /WEB-INF/lib de la carpeta.

    En su web.xml agregar:

    <context-param>
        <param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name>
        <param-value>com.intersult.jsf_desktop.util.ClassPathResourceResolver</param-value>
    </context-param>

    En cualquier FRASCO dentro de la GUERRA de lugar XHTML-los Archivos bajo /META-INF/recursos/<archivo.xhtml>

    Acceder a él a través de «http://<dominio>/<web-root>/<jsf-servlet>/recursos/<archivo.xhtml>» (por ejemplo. http://localhost/faces/resource/test.xhtml) y va a ser prestados.

    OriginalEl autor Tires

  3. 1

    Primero lea aquí acerca de la la diferencia entre la guerra y la jarra en una pregunta similar.

    Usted tendrá que crear un archivo EAR y el paquete de las guerras juntas.

    Ok, pero lo que no entiendo es: ¿puedo poner el .la guerra en la carpeta de la biblioteca de una nueva aplicación web y se incluyen las páginas web de los .la guerra en otras páginas?
    gracias por su tiempo 🙂

    OriginalEl autor Dejell

Dejar respuesta

Please enter your comment!
Please enter your name here