RichFaces 4 - <a4j:ajax ... =“”> Javascript“找不到RichFaces”</a4j:ajax>

时间:2010-11-10 23:50:49

标签: javascript jsf richfaces ajax4jsf myfaces

对不起问题标题,但我找不到更好的标题。

我正在使用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函数在每个keyup上触发ajax-reqest。但是,每次触发事件时,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天来研究这个问题。

//编辑: 我忘了提到如果我使用内置的jsf2 ajax-tag它就像一个魅力:

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

1 个答案:

答案 0 :(得分:4)

此问题已在this link中得到解决和评论。以下是相关摘录:

  

<强>原因

     

浏览器找不到对RichFaces的JS和CSS库的引用。

     

<强>解决方案

     

将以下标记添加到JSF代码中:

<h:head/>