2010-02-05 15 views
14

estoy siguiendo el Java EE firstcup tutorial usando Netbeans y Glassfish.etiquetas JSF no ser prestados como HTML

Cuando ejecuto el nivel web JSF, me han indicado 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 para ver la fuente 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 debe obtener algo como:

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

derecho?

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:

Respuesta

-1

resuelto: Cambio de la welcome-file en Web.xml a la siguiente resuelto el problema:

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

Impar También dijo que había intentado 'http: // localhost: 8081/firstcup/greetings.xhtml'. Eso debería haber funcionado tan bien sin un archivo de bienvenida. Al menos, la causa raíz del problema sigue siendo que la solicitud fue ** no ** pasada a través del 'FacesServlet'. – BalusC

0

Comprobar sea su web.xml o sus caras -config.xml. Algo obviamente falta.

edición: 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 usted debe echar un vistazo a esto. (Podría ser un indicio, lo siento no puedo evitar más lejos)

editar 2: esta no es la respuesta, lo siento

+0

¿Qué debería comprobar allí? Soy un novato en jsf y j2ee y tengo todo lo que dice el tutorial sobre web.xml y faces-config.xml.Es decir: configure la página de bienvenida en web.xml, establezca el paquete de recursos para fines de localización en faces-config.xml y configure algunas propiedades de flujo de página en faces-config.xml. – mmutilva

+0

Muéstranos esos dos archivos, eso te ayudará. –

+0

OK, he editado la pregunta. – mmutilva

20

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

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.

que debe ser similar

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

Gracias. Lo revisé y el patrón de URL estaba mal. Lo cambié a/firstcup/*. Sin embargo, la url que estoy ingresando es http: // localhost: 8081/firstcup/después de reiniciar el servidor y volver a implementar la aplicación, pero sigo obteniendo el código jsf sin procesar. ¿Qué más podría ser? – mmutilva

+0

Lo siento, la url que estoy ingresando en el navegador es localhost: 8081/firstcup con una barra inclinada (/) al final (no sé por qué esa última barra no se muestra en el comentario) – mmutilva

+1

Esa barra no lo hace t importa Tal vez el 'FacesServlet' no pudo iniciarse por algún motivo. Lea los registros de inicio del servidor para saber más. – BalusC

-2

que tenían el mismo problema. Eliminé algunos frascos de richfaces de WEB-INF/lib y JSF está funcionando ahora.

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 no rindió JSF.

Nota: *.html causas Stackoverflow

0

También he sufrido de un problema de jsf tags sin fundir en absoluto. Utilicé el 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 es not intercepting la página. Conduce a la representación de solo html y jsf etiquetas simplemente se ignoran.

0

Esto puede que no sea importante para usted, pero después de horas de búsqueda para la solución de un problema similar, mi culpable resulta ser en este archivo 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 en los registros (nada!), WEB-INF/lib, rutas de clases, incluso la eliminación de dependencias y resultó ser una sola :-P faces-config.xml

Esperamos que esto ayude a alguien. ..

0

Gracias @ Hendy Irawan-

he resuelto mi problema cambiado mi cabecera caras-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> 

Para

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