2

現在、Primefaces と treetables を使用しています。私のツリーテーブルは、1 つのケースを除いてうまく機能します。問題を説明するために少し例を挙げましょう。

ツリーテーブルは次のようになります。

  • アイテム1.1
    • アイテム2.1
  • アイテム1.2
  • アイテム1.3

最初は木が倒れています。ツリーテーブルは次のように定義されます。

<p:treeTable id="treetable" value="#{bean.root}" var="node" selectionMode="single" selection="#{bean.selectedNode}">  

そして、私はそれらの ajax 呼び出しを持っています:

<p:ajax event="select" listener="#{bean.onSelect}" />

すべてが一般的にうまくいっています。選択したノードは、ノードのレベルに関係なく更新されます。問題はこの場合です:

(すべて折りたたまれています)

  1. Item1.1を拡張
  2. Item2.1を選択
  3. アイテム1.1を折りたたむ
  4. Item1.2を選択

そしてここで私は例外を得ました:

INFO: java.lang.NumberFormatException: For input string: "0,1"
java.lang.NumberFormatException: For input string: "0,1"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at org.primefaces.component.api.UITree.findTreeNode(UITree.java:120)
    at org.primefaces.component.api.UITree.findTreeNode(UITree.java:129)
    at org.primefaces.component.api.UITree.setRowKey(UITree.java:80)
    at org.primefaces.component.treetable.TreeTableRenderer.decodeSelection(TreeTableRenderer.java:57)
    at org.primefaces.component.treetable.TreeTableRenderer.decode(TreeTableRenderer.java:40)
    at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787)
    at org.primefaces.component.api.UITree.processDecodes(UITree.java:180)
    at org.primefaces.component.treetable.TreeTable.processDecodes(TreeTable.java:325)
    at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506)
    at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
    at org.primefaces.component.api.UITree.visitTree(UITree.java:402)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIForm.visitTree(UIForm.java:371)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
    at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376)
    at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252)
    at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)
    at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)
    at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
4

1 に答える 1