为什么视图状态在rich:dataTable中使用a4j:commandlink到期?

时间:2014-06-04 08:23:20

标签: jsf richfaces ajax4jsf

我在myFaces 2.1.5中使用Richfaces 4.1。我有一个带命令链接的数据表。当我加载页面并单击链接时,我会立即获得viewExpiredException,无论我在点击之前等待多少,因此会话无法在服务器上过期。我将viewstate保存在服务器上。还有什么可以导致视图状态的丢失?

这是我的代码:

<h:form class="page_frame">
    <rich:dataTable value="#{RunArchiveBean.archivedRuns}" var="run" id="run_table" 
                    style="width: 900px; margin-top: 50px; margin-left: auto; margin-right: auto"
                    rowClasses="odd-row, even-row" styleClass="even_odd">
        <f:facet name="header">
            <h:outputText class="output_text_header" value="Run History" />
        </f:facet>
        <rich:column styleClass="run_archive_column" >
            <f:facet name="header">Name<br/></f:facet>
            <h:outputText value="#{run.name}"></h:outputText>
        </rich:column>
        <rich:column styleClass="run_archive_column" >
            <f:facet name="header">Network<br/></f:facet>
            <h:outputText value="#{run.network}"></h:outputText>
        </rich:column>
        <rich:column styleClass="run_archive_column" >
            <f:facet name="header">Network Element<br/></f:facet>
                <h:outputText value="#{run.networkElement}"></h:outputText>
        </rich:column>
        <rich:column styleClass="run_archive_column">
            <f:facet name="header">Creation Date<br/></f:facet>
            <h:outputText value="#{run.creationDate}"></h:outputText>
        </rich:column>
        <rich:column styleClass="run_archive_column">
            <f:facet name="header">Run Date<br/></f:facet>
            <h:outputText value="#{run.timestamp}"></h:outputText>
        </rich:column>
        <rich:column styleClass="run_archive_column_results" >
            <f:facet name="header">Actions<br/></f:facet>
            <a4j:commandLink execute="@this" action="alert('OK');" >
                <h:graphicImage id="log_image" name="log.png" library="images" style="border:0" />
                <rich:tooltip followMouse="true" target="log_image" value="Log" />
            </a4j:commandLink>
        </rich:column>
    </rich:dataTable>
</h:form>

1 个答案:

答案 0 :(得分:0)

看起来服务器端保存是个问题,但我无法说明原因 - 我在新版本的RichFaces中从未遇到此错误。切换到客户端保存应解决它。

有关更详细的说明,请参阅this question