2010-06-08 2 views
7

Mon serveur est glassfish v3, mon navigateur est firefox 3.6.3 et j'utilise Netbeans 6.8 Ma question est pourquoi le champ de texte n'apparaît pas dans mon navigateur. Je ne vois que l'étiquette.JSF Le formulaire ne s'affiche pas

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

Le 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

COMMEnT "Afficher la source" dans le navigateur lorsque la page est chargée? –

+0

Le code HTML résultant ressemble exactement au code ci-dessus. – AnAmuser

+0

montrez-nous votre fichier web.xml – Bozho

Répondre

14

Vous devez vous assurer que l'URL de la requête (que vous entrez dans la barre d'adresse du navigateur) correspond au url-pattern du FacesServlet. C'est à dire. n'ouvrez pas la page par http://example.com/context/page.xhtml, mais ouvrez-la par http://example.com/context/page.jsf. Sinon, le FacesServlet ne sera pas appelé et votre page XHTML avec des composants JSF ne sera pas analysée. Vous ne verrez que des balises "HTML" comme <fieldset> et ainsi de suite dans le navigateur et vous verrez le code source JSF inchangé dans la source HTML retournée lorsque vous faites Afficher la source dans le navigateur.

+0

Ok. Maintenant, j'ai changé le fichier de bienvenue en un fichier jsf, et cela fonctionne. Comme vous pouvez probablement deviner que je suis un débutant total sur cette chose web. J'essaie de faire quelques tutoriels, mais c'est frustrant quand même ces choses faciles ne fonctionneront pas :) – AnAmuser

+2

Il s'agit de lire les bons tutoriels de la bonne façon. Je vous suggère de démarrer ici: http://www.coreservlets.com/JSF-Tutorial/jsf2/ – BalusC

+1

AnAmuser, si vous pensez que cette réponse est correcte, en ce qu'elle a résolu votre problème, cliquez sur la case à côté de la réponse à " accepte-le –

0

Vérifiez si vous avez configuré Faces Servlet sur cette page

+0

Le mappage des visages est automatiquement effectué pour vous lorsque vous utilisez un serveur Java EE 6 tel que Sun GlassFishTM Enterprise Server v3. – AnAmuser

+1

ok. mais qu'est-ce que le post-fix de la page? .xhtml? est-ce que vous l'URL comme somthing.jsf et définissez dans WEB.xml pour mapper le servlet sur * .jsf? – Dejell

+0

C'est un fichier xhtml. et le fichier web.xml est maintenant dans la question – AnAmuser

7

Ajouter à votre web.xml:

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

Le problème que vous face à peut être résolu dans web.xml fichier stocké dans le dans votre projet d'application Web WEB-INF dir. Vous devez ouvrir ce fichier et ajouter le contenu xml suivant pour que vos pages fonctionnent correctement.

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

Si votre fichier .xml ne marche pas exister dans le répertoire mentionné, vous pouvez l'ajouter en cliquant sur votre projet d'application Web, ajouter le nouveau fichier puis choisissez descripteur de déploiement standard (web.xml)

Questions connexes