rich:scrollableDataTable导致无限发布循环

时间:2011-03-08 11:53:27

标签: java jsf richfaces

我正在尝试添加一个新的scrollableDataTable组件,这是一种非常奇怪的行为。我已将其属性和内容剥离到最低限度,奇怪的行为仍在继续。

所以问题是:当我点击包含带有我的可滚动数据表的文件的页面(在Modal窗口中)时,页面似乎继续进行无休止的提交/重新呈现循环。好像只是不断重新渲染整个页面或提交页面。

我的代码已附上。

我正在使用Richfaces 3.3.1和JSF 2.0.4。

main.xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:t="http://myfaces.apache.org/tomahawk">
    <ui:composition template="/templates/mclayout.xhtml">

<ui:define name="body">
    <rich:modalPanel id="mpDetail" minHeight="550" minWidth="480" zindex="2000">
        <a4j:form id="detail">
            <ui:include src="includeFile1.xhtml">
                <ui:param name="show1" value="#{myBean.struct.item.value}" />
            </ui:include>



includeFile1.xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:t="http://myfaces.apache.org/tomahawk">

    <rich:tabPanel id="my_tabpanel" value="#{myBean.selectedTab}" selectedTab="#{myBean.selectedTab}" switchType="client">

    <rich:tab id="hTest" label="test">
        <ui:include src="test-details-tab.xhtml">
            <ui:param name="testBean" value="#{myBean}" />
        </ui:include>
    </rich:tab>



测试细节-tab.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:t="http://myfaces.apache.org/tomahawk">

    <rich:scrollableDataTable id="testID">

    </rich:scrollableDataTable>

</html>

修改

查看我的eclipse tomcat日志,我可以看到它实际上平均每秒重新渲染页面2次。



编辑2

好的,所以我在自己的单个单独页面中尝试了一个非常简单的示例。它仍然无法正常工作,无休止的重新提交/循环仍然存在。 我还放了一个编辑器组件,只是为了确保它不是我系统上的Richfaces 3.3 ....编辑器工作正常。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:t="http://myfaces.apache.org/tomahawk">
    <ui:composition template="/templates/mclayout.xhtml">


        <ui:define name="pageTitle">
            <h:outputFormat value="#{messages['page_title']}" />
        </ui:define>

        <ui:define name="heading">
            #{messages[componentNavigator.currentComponent.id]}
        </ui:define>

        <ui:define name="body">


                <h:form id="form">
                    <h:panelGroup style="height:320px;width:400px;" layout="block">
                        <rich:editor id="editor" width="400" height="300"></rich:editor>
                    </h:panelGroup>
                </h:form>

                <h:form id="form2">
                    <rich:spacer height="30" />
                    <h:panelGroup style="height:320px;width:400px;" layout="block">
                        <rich:scrollableDataTable height="400px" width="700px" id="carList">
                            <rich:column id="make">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Make" /></f:facet>
                                <h:outputText value="" />
                            </rich:column>
                            <rich:column id="model">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Model" /></f:facet>
                                <h:outputText value="" />
                            </rich:column>
                        </rich:scrollableDataTable>
                    </h:panelGroup>
                    <rich:spacer height="20px"/>
                </h:form>

        </ui:define>

    </ui:composition>
</html>

编辑3

事实证明,JSF的运行版本是1.2

这可能是问题的原因吗?

由于

0 个答案:

没有答案