JSF a4j:在UI上支持Rerender不起作用

时间:2012-04-23 08:55:06

标签: java ajax jsf ajax4jsf

我正在研究JSF a4j componentsnet。

<h:selectOneMenu id="sampleSelect" value="#{myBackingBean.id}"
    immediate="true">
    <f:selectItems value="#{myBackingBean.generateSampleList}"/>
    <h:outputLabel value="Sample List : " for="sampleSelect"></h:outputLabel>
    <a4j:support ajaxSingle="true" 
                 event="onchange" 
                 reRender="dataTable1, dataTable2, dataTable3"
                 oncomplete="setColorbox();" 
                 action = "#{myBackingBean.setSampleListForDatatables}">
    </a4j:support>  
    </h:selectOneMenu>  

我的数据表

<h:panelGroup id="dataTable1">
    <h:dataTable value="#{myBackingBean.anotherBean.sampleList}" 
                 var="sampleList"
                 styleClass="table">
        <h:column>
            ....
        </h:column>
    </h:dataTable>
    </h:panelGroup>

我有多个数据表一样在此ajax调用上更改了,并应在完成ajax调用时重新执行。

在服务器端,数据已完全更改,但未在UI上进行修改。

用于检查目的我所做的是......使用,

<h:column>
    <%=new java.util.Date()%>
</h:column>
在我的ajax调用之后未修改的数据表中的

任何人都可以向我提出任何建议吗?

从一些帖子我开始知道我必须使用immediate =“true”,我已经完成了。但没有运气。

1 个答案:

答案 0 :(得分:1)

我得到了答案

<h:dataTable value="#{myBackingBean.anotherBean.sampleList}" 
             var="sampleList"
             styleClass="table" 
             id="dataTable1">
    <h:column>
        ....
    </h:column>
</h:dataTable>

我删除了h:panelGroup并将该ID设置为h:datatable,这样可行。 :)