Question

    

Cette question a déjà une réponse ici:

         

Mon serveur GlassFish v3, mon navigateur est Firefox 3.6.3 et je suis en utilisant Netbeans 6.8 Ma question est pourquoi le champ de texte n'apparaît pas dans mon navigateur. Je ne vois l'étiquette.

<?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>
Était-ce utile?

La solution

Vous devez vous assurer que l'URL de la demande (que vous entrez dans la barre d'adresse du navigateur) correspond à la url-pattern du FacesServlet. C'est à dire. ne pas ouvrir la page par http://example.com/context/page.xhtml , mais ouvrir par http://example.com/context/page.jsf . Sinon, le FacesServlet ne sera pas invoqué et votre page XHTML avec des composants JSF ne sera pas analysée en aucune façon. Vous ne verrez que des tags « HTML brut » comme <fieldset> et ainsi de suite dans le navigateur et vous verrez le code source JSF inchangé dans la source HTML retourné lorsque vous faites une Afficher la source dans le navigateur.

Autres conseils

Ajoutez ceci à votre web.xml:

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

Le problème que vous face à peut être résolu dans web.xml fichier stocké dans le WEB-INF dir dans votre projet d'application Web. Vous devez ouvrir ce fichier et ajouter le contenu XML suivant afin de rendre vos pages fonctionne 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)

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top