2010-06-08 22 views
7

Mi servidor es glassfish v3, mi navegador es Firefox 3.6.3 y estoy usando Netbeans 6.8 Mi pregunta es por qué el campo de texto no se muestra en mi navegador. Solo veo la etiqueta.El formulario JSF no se muestra

<?xml version='1.0' encoding='UTF-8' ?> 
    <!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:f="http://java.sun.com/jsf/core"> 
      <h:head> 
       <title>Lookup</title> 
      </h:head> 
      <h:body> 
       <fieldset> 
       <legend>Enter Your Customer ID</legend> 
       <p>Legal ids are id001, id002, and id003.</p> 
       <f:view> 
       <h:form> 
        Customer ID: 
        <h:inputText value="#{bankForm.customerId}" /> 
        <h:commandButton value="Show Current Balance" 
            action="#{bankForm.findBalance}" /> 
       </h:form> 
       </f:view> 
       </fieldset> 
      </h:body> 
    </html> 

El 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>*.jsf</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>pages/customer-lookup</welcome-file> 
    </welcome-file-list> 
</web-app> 
+0

¿Cómo funciona ¿Ver "Ver fuente" en el navegador cuando se carga la página? –

+0

El html resultante se ve exactamente igual que el código anterior. – AnAmuser

+0

muéstrenos su web.xml – Bozho

Respuesta

14

usted necesita para asegurarse de que la URL de solicitud (al entrar en la barra de direcciones del navegador) coincide con el url-pattern del FacesServlet. Es decir. no abra la página por http://example.com/context/page.xhtml, pero ábrala por http://example.com/context/page.jsf. De lo contrario, no se invocará el FacesServlet y su página XHTML con componentes JSF no se analizará de ninguna manera. Sólo verá etiquetas "plain HTML" como <fieldset> y así sucesivamente en el navegador y verá el código fuente JSF sin cambios en el código HTML devuelto cuando se hace una Ver código en el navegador.

+0

Ok. Ahora he cambiado el archivo de bienvenida, ya sea un archivo jsf, y funciona. Como probablemente puedas adivinar, soy un novato total en esta cosa web. Estoy tratando de hacer algunos tutoriales, pero es frustrante cuando incluso estas cosas fáciles no funcionan :) – AnAmuser

+2

Es una cuestión de leer los tutoriales correctos de la manera correcta. Te sugiero que comiences aquí: http://www.coreservlets.com/JSF-Tutorial/jsf2/ – BalusC

+1

AnAmuser, si crees que esta respuesta es correcta, ya que resolvió tu problema, haz clic en la casilla de verificación junto a la respuesta para " aceptarlo –

0

Comprobar si ha configurado Caras-Servlet en esta página

+0

Asignación de caras El servlet se realiza automáticamente cuando se utiliza un servidor Java EE 6 como Sun GlassFishTM Enterprise Server v3. – AnAmuser

+1

bien. pero, ¿cuál es la corrección posterior de la página? .xhtml? ¿lo URL como somthing.jsf y se establece en WEB.xml para asignar el servlet en * .jsf? – Dejell

+0

Es un archivo xhtml. y el archivo web.xml ahora está en la pregunta – AnAmuser

7

Agregar a su web.xml:

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

El problema que enfrenta con pueden ser resueltos en web.xml archivo almacenado en el WEB-INF dir en su proyecto de aplicación web. Debe abrir ese archivo y agregar el siguiente contenido xml para que sus páginas se ejecuten correctamente.

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

Si el archivo .xml no lo existe en el directorio mencionado, se puede añadir haciendo clic en su proyecto de aplicación web, añadir nuevo archivo y luego seleccione Estándar descriptor de despliegue (web.xml)

Cuestiones relacionadas