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("j_id1176210999_514e0f6c:j_id1176210999_514e0fad",event,{"parameters":{"javax.faces.behavior.event":"keyup"} })" 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}" />
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. –