2010-11-10 7 views
0

Désolé pour le titre de la question, mais je ne pouvais pas trouver un meilleur. J'utilise JSF 2.0 (MyFaces 2.0.2) et j'ai ajouté RichFaces 4 (4.0.0.20101004-M3) à mon projet. Je trouve un exemple avec RichFaces 4 (http://java.sys-con.com/node/1098139) et a créé un xhtml page avec le code suivant:RichFaces 4 - <a4j: ajax ...> Javascript "RichFaces non trouvé"

<ui:define name="webpage_main_body"> 
    <h:form> 
     <h:panelGrid columns="2"> 
      <h:outputText value="Text:" /> 
       <h:inputText value="#{echoBean.text}"> 
        <a4j:ajax event="keyup" render="text,count" 
         listener="#{echoBean.countListener}" /> 
       </h:inputText> 
       <h:outputText value="Echo:" /> 
       <h:outputText id="text" value="#{echoBean.text}" /> 
       <h:outputText value="Count:" /> 
       <h:outputText id="count" value="#{echoBean.count}" /> 
      </h:panelGrid> 
     </h:form> 
</ui:define> 

Comme il est une page Facelets, il utilise un modèle qui définit un en-tête (y compris un logo et la navigation principale).

Si j'ouvre la page dans mon navigateur, il est rendu correctement. Le code HTML résultant de l'inputbox est la suivante:

<input type="text" 
onkeyup="RichFaces.ajax(&quot;j_id1176210999_514e0f6c:j_id1176210999_514e0fad&quot;,event,{&quot;parameters&quot;:{&quot;javax.faces.behavior.event&quot;:&quot;keyup&quot;} })" value="" name="j_id1176210999_514e0f6c:j_id1176210999_514e0fad" id="j_id1176210999_514e0f6c:j_id1176210999_514e0fad"> 

Le problème est, si je rentre quelque chose dans la zone de texte, il faut tirer un ajax-reqest sur chaque keyup en utilisant une fonction Javascript appelée « RichFaces.ajax (...) ". Cependant à chaque fois que l'événement est déclenché, l'imprime Firefox Erreur-console une erreur:

Error: RichFaces is not defined 
Source File: http://localhost:8080/project/richEchoTest.xhtml 
Line: 1 

À ma question: Est-ce que quelqu'un a une idée où ce RichFaces-Javascript-objet est défini? Ou y a-t-il quelque chose que je dois inclure dans les pages xhtml? J'ai seulement inclus le "xmlns: a4j =" http://richfaces.org/a4j ", dois-je ajouter le" xmlns: riche .... "aussi?

Merci d'avance, je voudrais vraiment apprécier toute aide, parce que je déjà perdu 3 jours pencher sur le problème

// EDIT:. oublié de mentionner que si j'utilise le jsf2 intégré ajax-tag, il fonctionne comme un charme:

<f:ajax event="keyup" execute="@form" render="text count" 
listener="#{echoBean.countListener}" /> 
+2

Je viens de voir un message-log disant: "AVERTISSEMENT: L'implémentation de JavaServer Faces dans MyFaces a été détectée. L'emballage de composants utilisant des comportements RichFaces (a4j: ajax etc.) ne fonctionnera pas! "Je suppose que c'est le problème. –

Répondre

4

Ce problème a été résolu et commenté dans this link. Voici un extrait de pertinence:

Cause:

The browser can't find references to JS and CSS libraries of RichFaces.

Solution:

Add the following tag to your JSF code:

<h:head/> 
Questions connexes