扩展数据表和数据卷轴


<rich:extendedDataTable sortMode="single" width="700px" value="#{gpsReport.reportSummary}"
                                                enableContextMenu="true" var="gps"
                                                selectionMode="single"
                                                rowClasses="tableRow1, tableRow2"
                                                id="tbl_gps" height="301px" rows="#{gpsReport.rowCount}" rowKeyVar="row">
                            <rich:column label="User" style="text-align: center" width="100px" >
                                <f:facet name="header">
                                    <h:outputText value="User" />
                                </f:facet>
                                <h:outputText value="#{gps.currentUser}" />
                            </rich:column>
                            <rich:column label="Time Stamp" style="text-align: center" width="140px" >
                                <f:facet name="header">
                                    <h:outputText value="Time Stamp" />
                                </f:facet>
                                <h:outputText value="#{gps.modifiedDate}" />
                            </rich:column>
                            <rich:column label="Latitude" style="text-align: center" width="110px" >
                                <f:facet name="header">
                                    <h:outputText value="Latitude" />
                                </f:facet>
                                <h:outputText value="#{gps.latitude}" />
                            </rich:column>
                            <rich:column label="Longitude" style="text-align: center" width="110px" >
                                <f:facet name="header">
                                    <h:outputText value="Longitude" />
                                </f:facet>
                                <h:outputText value="#{gps.longitude}" />
                            </rich:column>
                            <rich:column label="Location" style="text-align: center" width="240px" >
                                <f:facet name="header">
                                    <h:outputText value="Location" />
                                </f:facet>
                                <h:outputText value="#{gps.location}" />
                            </rich:column>
                        </rich:extendedDataTable>
                        <rich:datascroller align="center" for="tbl_gps"  />

为什么这段代码不能工作?我错过什么了吗?这是我在另一页上用过的相同实现,它实际上是有效的。但是这次运气不好。

问题是每次创建托管bean时都要重新填充列表内容。由于托管bean具有请求作用域,因此它将在每个操作(包括ajax操作)上创建。请参考如何选择合适的豆子镜。这里提供的链接解释了托管bean的作用域,并提供了使用它们的好例子。

由于使用的是JSF 1.2,所以不能使用视图作用域。相反,要解决这个问题,有两种方法:

  1. 将托管bean的作用域更改为会话作用域。它将解决您的问题,但是托管bean将一直存在到用户会话到期,这不是一个真正好的解决方案。

  2. 在请求范围内维护您的托管bean,并使用RichFaces 3.3和@KeepAlive注释的功能。此注释将使您的请求在用户仍处于同一视图时(与视图作用域非常相似)得以管理。它的用法非常简单:

    @KeepAlive
    public class GpsReport {
        //managed bean definition...
    }
    

相关内容

  • 没有找到相关文章