一段时间后没有调用JSF actionListener

时间:2014-11-17 09:14:08

标签: java jsf richfaces jsf-1.2

我有一个带有一些组件的modalPanel(例如,一棵树)。在fisrt我的动作和actionListners工作正确。一段时间后(从5到10分钟),操作完全停止工作。该帖子被触发,但AjaxViewRoot操作为空。我没有验证错误。 所有页面组件ID都是固定的(未生成)以防止转换错误。 我的bean是Conversation作用域,它的超时时间超过30分钟。

    <rich:modalPanel id="modalId" resizeable="false" autosized="true">
        <a4j:include id="myPage" viewId="#{bean.viewId}"/>
    </rich:modalPanel>

这是myPage(包含页面)代码:

<ui:composition>
<h:form id="frmPage">  
    <h:panelGrid columns="1">
    <a4j:region id="treeRegion">
    <rich:panel id="tbPanelTrees">

      <h:panelGrid columns="2" >
        <h:panelGroup layout="block" style="height:#{(height-150)/2}px; width:#{(width-20)/2}px; overflow:visible; overflow-y:auto; overflow-x:auto;">
           <rich:tree id="subjectTree"
                       style=" height: 100%" 
                       switchType="ajax" 
                       var="item" 
                       nodeFace="#{item.nodeType}"
                       value="#{bean.subjTree.rootSubjectsTree}"
                       adviseNodeOpened="#{bean.subjTree.adviseNodeOpened}"                                                                
                       changeExpandListener="#{bean.subjTree.changeExpandListener}"
                       nodeSelectListener="#{bean.subjTree.nodeSelectListener}"
                       ajaxSubmitSelection="true"
                       reRender="elements outside region"
                       ajaxSingle="true"
                       ignoreDupResponses="true">
                <rich:treeNode type="root" icon="#{item.subjectsIcon}" iconLeaf="#{item.subjectsIcon}" id="subjectRootNode">
                    <a4j:commandLink value="#{item.nodeName}" id="subjectRootNodeLink"/>                    
                </rich:treeNode>
                <rich:treeNode type="user" icon="#{item.userIcon}" iconLeaf="#item.userIcon}" id="userNode">
                      <a4j:commandLink value="#{item.nodeName}" id="userNodeLink"/>                 
                </rich:treeNode>

            </rich:tree>                
        </h:panelGroup>
    </a4j:region>   
    </h:panel:Grid>
</h:form>           
</ui:composition>

有没有人有想法,有什么问题?

1 个答案:

答案 0 :(得分:0)

终于找到了解决方案。我的一些组件没有定义的id并且生成了一个(如myForm:j1456546)。 页面的另一部分发送轮询请求(以显示一些新闻),该请求将DOM树发送到服务器以进行验证。生成的id在服务器端发生了变化,但在客户端保持不变(因为除了新闻面板之外,轮询没有重新报告)。因此,当用户单击按钮(或触发任何其他ajax-action)时,客户端和服务器端的按钮ID会在其中调用不同的操作。 解决方案:手动定义所有ID。