我正在尝试添加一个新的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次。
好的,所以我在自己的单个单独页面中尝试了一个非常简单的示例。它仍然无法正常工作,无休止的重新提交/循环仍然存在。 我还放了一个编辑器组件,只是为了确保它不是我系统上的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>
事实证明,JSF的运行版本是1.2
这可能是问题的原因吗?
由于