tutorial template espaƱol ejemplo jsf netbeans java-ee glassfish

jsf - template - ui:composition primefaces



Las etiquetas JSF no se representan como HTML (8)

El siguiente código en web.xml

<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>

en lugar de faces/* ha resuelto mi problema de etiquetas jsf no renderizadas.

Nota: *.html causa stackoverflow

Estoy siguiendo el tutorial de Firstcup de Java EE usando Netbeans y Glassfish .

Cuando ejecuto el nivel web JSF me han ordenado que codifique, el navegador obtiene el mismo marcado JSF codificado en el archivo .xhtml, y las etiquetas no se representan como etiquetas HTML. Lo sé usando el código fuente de la vista en mi navegador.

Por ejemplo, para este código:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Page title here</title> </h:head> <h:body> <h2> <h:outputText value="#{bundle.WelcomeMessage}" /> </h2> </h:body> </html>

El navegador debería obtener algo como:

<html ...> <head> <title>Page title here</title> </head> <body> <h2> the welcome message goes here </h2> </body> </html>

¿Derecha?

Bueno, mi navegador está recibiendo el código jsf (la primera parte del código anterior) y no el código html (la segunda parte del código anterior).

Parece ser un problema de configuración en netbeans o glassfish, pero no sé qué. ¿Algunas ideas?

Este es mi archivo web.xml:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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-app_3_0.xsd"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/firstcup/*</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>greetings.xhtml</welcome-file> </welcome-file-list> </web-app>

Este es mi archivo faces-config.xml:

<?xml version=''1.0'' encoding=''UTF-8''?> <!-- =========== FULL CONFIGURATION FILE ================================== --> <faces-config version="2.0" 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"> <application> <resource-bundle> <base-name>firstcup.web.WebMessages</base-name> <var>bundle</var> </resource-bundle> <locale-config> <default-locale>en</default-locale> <supported-locale>es</supported-locale> </locale-config> </application> <navigation-rule> <from-view-id>/greetings.xhtml</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/response.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config>

Además:


Gracias @ hendy-irawan

Solucioné mi problema cambiando mi encabezado faces-config

De

<?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_1_2.xsd" version="1.2"> </faces-config>

A

<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd" version="2.2"> </faces-config>


Puede que esto no sea relevante para usted, pero luego de horas de buscar la solución para un problema similar, mi culpable es este archivo en WEB-INF / faces-config.xml:

<?xml version="1.0"?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude" 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_1_2.xsd"/>

Por alguna extraña razón, JBoss Tools 3.3.0.M2 puso ese archivo en mi proyecto JSF 2.0 y ¡BOOM! Nada funciona. El archivo se ve muy inocente aún (probablemente debido a la versión = "1.2") me hizo bastante frustrado.

He buscado registros (¡nada!), WEB-INF / lib, classpaths, incluso quitando dependencias y resultó ser un solo faces-config.xml :-P

Espero que esto ayude a alguien ...


SOLUCIONADO: Al cambiar el archivo de bienvenida en web.xml, se resuelve el problema a continuación:

<welcome-file-list> <welcome-file>firstcup/greetings.xhtml</welcome-file> </welcome-file-list>


Si las etiquetas JSF no se han analizado, significa que la solicitud no se ha transmitido a través de FacesServlet . Ese servlet es el responsable de todas las cosas de JSF. FacesServlet verificar si la URL de solicitud utilizada coincide con el url-pattern de FacesServlet . Tenga en cuenta que es sensible a las mayúsculas.

Sin embargo, esto también puede suceder si abre el archivo directamente en el navegador integrado del IDE. No deberías hacer eso. Debe especificar la URL correcta usted mismo en la barra de direcciones del navegador integrado o de un navegador externo (por ejemplo, MSIE / Firefox).

Actualización : una cosa más, ¿declaraste el taglib JSF HTML en <html xmlns> attribtue? Lo omitiste en tu fragmento de código.

Debería verse como

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">


También sufrí el problema de las jsf tags , no procesadas. login/entry.xhtml archivo de bienvenida en web.xml como login/entry.xhtml .

Cuando cambié ese archivo a faces/login/entry.xhtml , está funcionando bien.

Debe ser debido a facesServelet not intercepting está not intercepting la página. Conduce a la representación de solo HTML simple y las etiquetas jsf simplemente se ignoran.


Verifique su web.xml o su faces-config.xml. Algo obviamente falta.

editar: no sé jsf 2, pero en mi jsf 1 faces-config.xml tengo esto:

<application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> </application>

Tal vez deberías echarle un vistazo a esto. (podría ser una pista, lo siento, no puedo ayudar más)

edición 2: esta no es la respuesta, lo siento


Yo tuve el mismo problema. Eliminé algunos frascos de richfaces de WEB-INF / lib y JSF está funcionando ahora.