我在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>
答案 0 :(得分:0)
看起来服务器端保存是个问题,但我无法说明原因 - 我在新版本的RichFaces中从未遇到此错误。切换到客户端保存应解决它。
有关更详细的说明,请参阅this question。