[英]Primefaces TreeTable with CellEditor extreme slow / freeze
即時使用具有 15 列和 12 列的 TreeTable 包含一個單元編輯器。 29 行后,我無法擴展任何其他節點,並且該站點似乎已損壞(沒有按鈕可用)。 刪除一些 cellEditor 后,我可以添加更多行,直到站點再次損壞。 如果我刪除所有 cellEditors 它工作正常。 如果我只添加一些它的工作很好但極慢。 這種行為僅在我的服務器上(使用 tomcat 7 運行 linux),本地一切運行良好。
我正在使用 PF 11.0.4 和 Mojarra 2.3.14。 在 Tomcat 7 和 Tomcat 8 上測試。
這是一個簡單的版本,正如我所說,這只適用於本地
我的xhtml:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>PrimeFaces Test</title>
<h:outputScript name="test.js" />
<h:outputStylesheet name="test.css" />
</h:head>
<h:body>
<h1>#{testView.string}</h1>
<h:form id="frmTest">
<p:treeTable id="table" var="prozess" editable="true" editMode="cell"
editInitEvent="dblclick" value="#{testView.root}"
widgetVar="proTable" emptyMessage="Kein Prozess gefunden"
scrollHeight="70vh" scrollable="true">
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
</p:treeTable>
</h:form>
</h:body>
</html>
我的豆子:
package org.primefaces.test;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.math.BigDecimal;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import org.primefaces.model.CheckboxTreeNode;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
import org.primefaces.model.charts.ChartData;
import org.primefaces.model.charts.donut.DonutChartDataSet;
import org.primefaces.model.charts.donut.DonutChartModel;
import lombok.Data;
@Data
@Named
@ViewScoped
public class TestView implements Serializable {
/**
*
*/
private static final long serialVersionUID = -8053071088222244162L;
private String string;
private TreeNode<String> root;
@PostConstruct
public void init() {
setString("Welcome to PrimeFaces!!!");
buildDoc();
}
public void buildDoc(){
root = new DefaultTreeNode<String>();
for(int i = 0;i<100;i++){
DefaultTreeNode<String> noroot = new DefaultTreeNode<String>("Node"+i,root);
for(int j=0;j<20;j++){
new DefaultTreeNode<String>("Node"+j,noroot);
}
}
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
/**
* @return the root
*/
public TreeNode<String> getRoot() {
return root;
}
/**
* @param root the root to set
*/
public void setRoot(TreeNode<String> root) {
this.root = root;
}
}
問題是我的服務器安裝的防火牆,關閉了超過 500 個參數的每個連接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.