RichFaces 4 - <a4j: ajax ...> Javascript "RichFaces not found" - PullRequest
0 голосов
/ 11 ноября 2010

Извините за заголовок вопроса, но я не смог найти лучшего.

Я использую 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">

Проблема в том, что если я введу что-то в текстовое поле, оно должно запускать ajax-запрос на каждый keyup с использованием Javascript-функции под названием «RichFaces.ajax (...)». Однако каждый раз, когда происходит событие, консоль ошибок Firefox выдает ошибку:

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

На мой вопрос: у кого-нибудь есть идея, где определяется этот RichFaces-Javascript-Object? Или я должен что-то включить в xhtml-страницы? Я включил только «xmlns: a4j =» http://richfaces.org/a4j", Должен ли я добавить «xmlns: rich ....» тоже?

Заранее спасибо, я очень признателен за любую помощь, потому что я уже потратил 3 дня на поиски проблемы.

// EDIT: Я забыл упомянуть, что если я использую встроенный ajax-тег jsf2, он работает как шарм:

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

1 Ответ

4 голосов
/ 14 марта 2011

Эта проблема была решена и прокомментирована в по этой ссылке .Вот фрагмент уместности:

Причина :

Браузер не может найти ссылки на библиотеки JS и CSS RichFaces. Решение :

Добавьте следующий тег в код JSF:

<h:head/>
...