2010-02-05 6 views
14

Je suis après la Java EE firstcup tutoriel en utilisant Netbeans et Glassfish.balises JSF ne sont pas rendus en HTML

Lorsque j'exécute le niveau Web JSF que l'on m'a demandé de coder, le navigateur reçoit le même balisage JSF codé dans le fichier .xhtml et les balises ne sont pas affichées en tant que balises HTML. Je sais cela en utilisant le Voir le code source dans mon navigateur.

Par exemple, pour ce code:

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

Le navigateur devrait obtenir quelque chose comme:

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

droit?

Eh bien, mon navigateur obtient le code jsf (le premier morceau de code ci-dessus) et non le code html (le deuxième morceau de code ci-dessus).

Il semble que ce soit un problème de configuration chez netbeans ou glassfish mais je ne sais pas quoi. Des idées?


Ceci est mon fichier 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> 

Ceci est mon fichier 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> 

De plus:

Répondre

-1

RESOLU: Changer l'accueil fichier dans web.xml à ce qui suit résolu le problème:

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

Odd. Vous avez dit que vous avez également essayé 'http: // localhost: 8081/firstcup/greetings.xhtml'. Cela aurait dû fonctionner aussi sans un fichier de bienvenue. Au moins, la cause première du problème est toujours que la requête n'a pas été transmise à travers le 'FacesServlet'. – BalusC

0

Vérifiez soit votre web.xml ou vos visages -config.xml. Quelque chose est évidemment manquant.

modifier: je ne sais pas 2 jsf, mais dans mon jsf 1 faces-config.xml i ont ceci:

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

Peut-être que vous devriez regarder un cela. (Peut-être un indice, désolé je ne peux pas aider davantage)

modifier 2: ce n'est pas la réponse, désolé

+0

Que dois-je vérifier là-bas? Je suis un débutant à jsf et j2ee et j'ai tout ce que dit le tutoriel concernant le web.xml et le faces-config.xml.C'est-à-dire: définissez la page d'accueil dans le fichier web.xml, définissez le regroupement resourse à des fins de localisation dans le fichier faces-config.xml et définissez des propriétés de flux de pages dans le fichier faces-config.xml. – mmutilva

+0

Montrez-nous ces deux fichiers, cela vous aidera. –

+0

OK, j'ai édité la question. – mmutilva

20

Si les balises JSF ne sont pas été analysées, cela signifie simplement que la demande n'a pas été adoptée à travers le FacesServlet. Cette servlet est responsable de tous les trucs de JSF. Vous devez vérifier si l'URL de demande utilisée correspond au url-pattern du FacesServlet. Notez qu'il est sensible à la casse.

Cela peut toutefois également se produire si vous avez ouvert le fichier directement dans le navigateur intégré de l'EDI. Tu ne devrais pas faire ça.Vous devez spécifier la bonne URL vous-même dans la barre d'adresse du navigateur intégré ou d'un navigateur externe (par exemple MSIE/Firefox).

Mise à jour: une chose, avez-vous déclariez le taglib JSF HTML dans <html xmlns> attribtue? Vous l'avez omis dans votre extrait de code.

Il devrait ressembler à

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

Merci. Je l'ai vérifié et le modèle d'URL était faux. Je l'ai changé en/firstcup/*. Cependant, l'URL que j'entre est http: // localhost: 8081/firstcup/après le redémarrage du serveur et le redéploiement de l'application, mais mais je continue d'obtenir le code jsf non rendu. Quoi d'autre cela pourrait-il être? – mmutilva

+0

Désolé, l'URL que j'entre dans le navigateur est localhost: 8081/firstcup avec une barre oblique (/) à la fin (je ne sais pas pourquoi cette dernière barre oblique n'est pas affichée dans le commentaire) – mmutilva

+1

Cette barre oblique ne fonctionne pas t importe. Peut-être que le 'FacesServlet' n'a pas pu démarrer pour une raison quelconque. Lisez les journaux de démarrage du serveur pour en savoir plus. – BalusC

-2

J'ai eu le même problème. J'ai supprimé certains jar richfaces de WEB-INF/lib et JSF fonctionne maintenant.

8

Le code suivant dans web.xml

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

au lieu de faces/* a résolu mon problème de balises JSF non-rendu.

Note: *.html les causes Stackoverflow

0

J'ai aussi souffert de problème de jsf tags, pas du tout rendu. J'ai utilisé le fichier de bienvenue dans web.xml comme login/entry.xhtml.

Lorsque j'ai changé ce fichier en faces/login/entry.xhtml, cela fonctionne bien. Il doit être dû à facesServelet est not intercepting la page. Il conduit à rendre seulement html et jsf sont simplement ignorés.

0

Cela peut ne pas être pertinent pour vous, mais après des heures de recherche de la solution à un problème similaire, mon coupable se révèle être ce fichier dans 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"/> 

Pour une raison étrange, JBoss Tools 3.3.0.M2 a mis ce fichier dans mon projet JSF 2.0 et BOOM! Rien ne fonctionne. Le fichier a l'air très innocent (probablement à cause de version = "1.2") cela m'a rendu assez frustré.

J'ai cherché les journaux (rien!), WEB-INF/lib, classpaths, même suppression des dépendances et il est avéré être une seule faces-config.xml :-P

Espérons que cela aide quelqu'un. ..

0

Merci @ Hendy-Irawan

Je résolu mon problème en changé ma tête visages-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> 

Pour

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