AJAX不能使用myfaces 2.1和富有面孔4.3

时间:2013-12-16 10:48:55

标签: jsf-2 richfaces myfaces

我们正在从jsf 1.2升级到jsf 2。 我们正在使用apache myfaces 2.1和富面4.3。

问题是,似乎<a4j:commandButton>标记AJAX功能已被破坏。 下面是xhtml文件。

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">


    <h:form prependId="false" id="questionsForm">   

        <!-- other form fields are not shown -->
        <a4j:commandButton  id="questions" value="Clear" action="#{bean.clearAction}"/> 
    </h:form>

</html> 

单击“清除”按钮后,将执行后端代码,但会重新加载整个页面(页面将再次刷新)。 迁移前代码完全正常,没有页面重新加载。

任何人都可以帮助我们如何在富脸标签中使用这个AJAX吗?

1 个答案:

答案 0 :(得分:2)

作为给定的属性,您必须告诉a4j:commandButton

  • 您要执行的部分(例如,当前页面的哪些输入字段应更新)
  • 您要重新呈现的页面部分

第一个是使用属性execute完成的,最后一个是使用属性render完成的。如果两者都不给出,则按钮的行为类似于传统的h:commandButton(这解释了所描述的行为)

更新:同时检查<head><body>标记是否必须与<h:head><h:body>一样,以便JSF有机会添加强制性javascript-和css库。

更新:您是否仔细检查过您的操作返回void /“”/ null而不是任何转发? (另见"a4j:commandButton makes a full page reload RichFaces 3.3.3 CR1"