0

質問のタイトルは申し訳ありませんが、より良いものを見つけることができませんでした。

私は 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(&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">

問題は、テキストボックスに何かを入力すると、「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}" />
4

1 に答える 1

4

この問題は解決され、このリンクでコメントされました。関連性の抜粋を次に示します。

原因:

ブラウザーは、RichFaces の JS および CSS ライブラリーへの参照を見つけることができません。

解決策:

次のタグを JSF コードに追加します。

<h:head/>
于 2011-03-14T20:29:21.553 に答える