嗨我们正在使用a4j标签。
这里我们在点击按钮后从数据库中检索数据。即使数据在服务器中可用,它也不会显示在视图上。手动刷新网页后会导致数据显示。
这是代码段 ....这里的一些代码
<rich:tab id="menu5" label="Recall">
<ui:include src="/pages/mctrans/reCallMcifTrans.xhtml" />
</rich:tab>
reCallMcifTrans.xhtml包含以下代码
<h:commandButton type="button" id="reCallbutton1" value=" Search "
styleClass="commandExButton">
<a4j:support event="onclick" id="ajsf12"
oncomplete="javascript:alert('Search Completed');javascript:document.body.style.cursor='default';"
action="#{mcifRecallTransBean.reCallSearch}" reRender="reCallgrid1" />
</h:commandButton>
答案 0 :(得分:1)
看起来你正在使用RichFaces 3.3。因此,您不需要<h:commandButton
<a4j:support>
,因为您可以使用已经执行此操作的<a4j:commandButton>
。您可以将代码重构为:
<a4j:commandButton type="button" id="reCallbutton1" value="Search"
styleClass="commandExButton"
action="#{mcifRecallTransBean.reCallSearch}"
reRender="reCallgrid1"
oncomplete="javascript:alert('Search Completed');javascript:document.body.style.cursor='default';" />
确保reCallgrid1
组件在<h:form>
的同一<a4j:commandButton>
内可用。
由于您还希望在单击按钮时添加在搜索数据时等待行为,因此您可以使用<a4j:status>
以及<a4j:commandButton>
,如{ {3}}。这是一个基本的例子:
<a4j:commandButton type="button" id="reCallbutton1" value="Search"
styleClass="commandExButton"
action="#{mcifRecallTransBean.reCallSearch}"
reRender="reCallgrid1" />
<!-- Note that there's no oncomplete in this case -->
<a4j:status for="reCallbutton1">
<f:facet name="start">
<h:graphicImage value="/res/images/wait.gif"/>
</f:facet>
</a4j:status>
最后但并非最不重要的一点是,您应该将托管bean切换为请求范围并使用RichFaces强大的<a4j:status>
demo来模拟JSF 2 <a4j:keepAlive>
。您甚至可以在托管bean上以注释的形式使用它(无需其他配置):
@KeepAlive
public class McifRecallTransBean {
//managed bean code here...
}
答案 1 :(得分:0)
当您在bean中使用请求参数时,需要使用您的操作再次传递它们:
<h:commandButton type="button" id="reCallbutton1" value="Search" styleClass="commandExButton">
<a4j:support event="onclick" id="ajsf12" oncomplete="javascript:alert('Search Completed');javascript:document.body.style.cursor='default';" action="#{mcifRecallTransBean.reCallSearch}" reRender="reCallgrid1" />
<f:param name="param1" value="#{param['param1']}" />
<f:param name="param2" value="#{param['param2']}" />
</h:commandButton>