質問のタイトルは申し訳ありませんが、より良いものを見つけることができませんでした。
私は JSF 2.0 (MyFaces 2.0.2) を使用しており、プロジェクトに RichFaces 4 (4.0.0.20101004-M3) を追加しました。RichFaces 4 (http://java.sys-con.com/node/1098139) の例を見つけ、次のコードで xhtml ページを作成しました。
<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>
これは Facelets ページであるため、ヘッダー (ロゴとメイン ナビゲーションを含む) を定義するテンプレートを使用します。
ブラウザでページを開くと、正しくレンダリングされます。入力ボックスの結果の HTML コードは次のとおりです。
<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">
問題は、テキストボックスに何かを入力すると、「RichFaces.ajax(...)」と呼ばれる Javascript 関数を使用して、すべてのキーアップで ajax-reqest を起動する必要があることです。ただし、イベントが発生するたびに、Firefox エラー コンソールはエラーを出力します。
Error: RichFaces is not defined
Source File: http://localhost:8080/project/richEchoTest.xhtml
Line: 1
私の質問に対して: この RichFaces-Javascript-Object が定義されている場所を知っている人はいますか? または、xhtml-pages 内に含める必要があるものはありますか? 「xmlns:a4j="http://richfaces.org/a4j」のみを含めました。「xmlns:rich....」も追加する必要がありますか?
事前に感謝します。問題を調査するのに 3 日間も費やしてしまったので、助けていただければ幸いです。
//編集: 組み込みの jsf2 ajax-tag を使用すると、魅力的に機能することを忘れていました:
<f:ajax event="keyup" execute="@form" render="text count"
listener="#{echoBean.countListener}" />