2010-11-10 2 views
0

Извините за заголовок вопроса, но я не мог найти лучшего.RichFaces 4 - <a4j: ajax ...> Javascript «RichFaces not found»

Я использую 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 код InputBox выглядит следующим образом:

<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"> 

проблема, если я что-то ввести в текстовое поле, он должен сгореть АЯКС-reqest на каждом KeyUp, используя JavaScript-функцию под названием «RichFaces.ajax (...)». Однако каждый раз, когда событие срабатывает, то Firefox Error-консоль выводит ошибку:

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

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

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

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

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

Я только что увидел сообщение с сообщением: «ПРЕДУПРЕЖДЕНИЕ: обнаружена реализация объектов JavaServer Faces на MyFaces. Обертка компонентов с использованием поведения RichFaces (a4j: ajax и т. Д.) Не сработает! »Наверное, это проблема. –

ответ

4

Эта проблема решена и прокомментирована в this link. Вот выдержка актуальности:

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/> 
Смежные вопросы