我们正在从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吗?
答案 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")