[Seasar-user:6725] Re: [S2JSF1.1] S2JSFでツリーコンポーネントを使用するには?
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2007年 3月 17日 (土) 09:32:18 JST
ありがとうございます。
お忙しい中恐れ入りますが、よろしくお願いいたします。
> 大谷です。
>
> 下記の件、やはりTree2を使うよりはTeedaのTreeを使えるように
> したほうが前向きなので、そちらの方向で調査します。
>
>
> ちょっと時間がかかると思いますが、宜しくお願いします。
>
>
> 07/03/15 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 素早いご回答ありがとうございます。
> >
> > Tomahawk の tree2は試したのですがだめでした...
> > すみません。スタックトレースを全部載せます。
> >
> > java.lang.ClassCastException: javax.faces.component.UIGraphic
> > at org.seasar.teeda.core.render.html.HtmlGraphicImageRenderer.encodeEnd(HtmlGraphicImageRenderer.java:53)
> > at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:349)
> > at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
> > at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeNavigation(HtmlTreeRenderer.java:562)
> > at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeCurrentNode(HtmlTreeRenderer.java:346)
> > at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree(HtmlTreeRenderer.java:248)
> > at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeChildren(HtmlTreeRenderer.java:196)
> > at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
> > at org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:75)
> > at org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
> > at org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:85)
> > at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
> > at org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:75)
> > at org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
> > at org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:85)
> > at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
> > at org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:75)
> > at org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
> > at org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:85)
> > at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
> > at org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:75)
> > at org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
> > at org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:77)
> > at org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
> > at org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:85)
> > at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
> > at org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:75)
> > at org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
> > at org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:85)
> > at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
> > at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:244)
> > at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:212)
> > at org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:226)
> > at org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> > at org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
> > at org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:269)
> > at org.seasar.jsf.processor.TagProcessorImpl.processBodyTag(TagProcessorImpl.java:243)
> > at org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:213)
> > at org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:196)
> > at org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:174)
> > at org.seasar.jsf.runtime.ViewRendererImpl.renderView(ViewRendererImpl.java:102)
> > at org.seasar.jsf.application.S2ViewHandler.renderView(S2ViewHandler.java:123)
> > at org.seasar.jsf.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205)
> > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:93)
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> > at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> > at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> > at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> > at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> > at java.lang.Thread.run(Thread.java:595)
> >
> >
> > [HTML]
> > ...
> > <span m:inject="x:tree2"
> > m:value="#{sampleTree2Dto.treeTest}" m:var="node" m:varNodeToggler="x">
> > <span m:inject="f:facet" m:name="root-node">
> > <span m:inject="h:outputText" m:value="#{node.description}"/>
> > </span>
> > <span m:inject="f:facet" m:name="folder-A">
> > <span m:inject="h:outputText" m:value="#{node.description}"/>
> > </span>
> > <span m:inject="f:facet" m:name="document">
> > <span m:inject="h:outputText" m:value="#{node.description}"/>
> > </span>
> > </span>
> > ...
> >
> > [DTO]
> > public TreeNode getTreeTest() {
> > treeTest = new TreeNodeBase("root-node", "ROOT", false);
> > TreeNode personNode = new TreeNodeBase("folder-A", "AAA", false);
> > TreeNode document1 = new TreeNodeBase("document", "BBB", true);
> > document1.setDescription("../hello/hello.html");
> > TreeNode document2 = new TreeNodeBase("document", "CCC", true);
> > document1.setDescription("../start/index.html");
> > personNode.getChildren().add(document1);
> > personNode.getChildren().add(document2);
> > treeTest.getChildren().add(personNode);
> > return treeTest;
> > }
> >
> >
> >
> > "Shinpei Ohtani" <[E-MAIL ADDRESS DELETED]>さん:
> > > 大谷です。
> > >
> > > https://www.seasar.org/issues/browse/TEEDA-267 にあるように、
> > > レイアウト機能の影響で現在のTeedaCoreから、
> > > TeedaExtensionの拡張機能を使うことができません。
> > >
> > > 次のバージョンまでには修正しますが、修正範囲がそれなりに大きいので
> > > 時間がかかります。
> > > もし待てないようであれば、TomahawkのTree2を使ってみるのはいかがでしょうか。
> > >
> > > お手数かけますが宜しくお願いします。
> > >
> > > 07/03/15 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > お世話になっております。
> > > >
> > > > S2JSF1.1 から Teedaの treeコンポーネントを使用しようと思い
> > > > TeedaのHTMLサンプルをS2JSF化してみたところ一応表示はされました。
> > > >
> > > > [環境]
> > > > ・Tomcat 5.5.20
> > > > ・Seasar 2.4.11
> > > > ・S2JSF 1.1.1
> > > > ・Teeda 1.0.6
> > > >
> > > > ただし、ブラウザでリロードすると表示がおかしくなってしまいます。
> > > > (ツリーがもう一つ表示されてしまう。)
> > > >
> > > > また、app.dicon で teedaExtension.dicon を includeしてしまうと
> > > > 他の画面(S2JSF1.1 で作成)で ブラウザリロード時に
> > > >
> > > > java.lang.ClassCastException: org.seasar.teeda.extension.component.TViewRoot
> > > > at org.seasar.jsf.lifecycle.LifecycleImpl.hasEvent(LifecycleImpl.java:303)
> > > > at org.seasar.jsf.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:98)
> > > > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:92)
> > > > ....
> > > >
> > > > が発生してしまいます。
> > > > なんでかな?と思い調べてみたところ、
> > > >
> > > > org.seasar.jsf.lifecycle.LifecycleImplのhasEvent(FacesContext context)
> > > > メソッドにおいて context.getViewRoot(); の中身が
> > > >
> > > > ・teedaExtension.dicon includeした時
> > > > org.seasar.teeda.extension.component.TViewRoot
> > > >
> > > > ・teedaExtension.dicon includeしない時
> > > > org.seasar.jsf.component.S2UIViewRoot
> > > >
> > > > となっていたため、 S2JSF1.1 では teedaExtension を使用できないのだと
> > > > 理解しました...
> > > >
> > > > ただ、どうしても画面にツリーを表示したいので困っています。
> > > >
> > > > S2JSFで Treeを表示したい場合、みなさんどのように作成されていますか?
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > [E-MAIL ADDRESS DELETED]
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > >
> > >
> > >
> > > --
> > > =============================
> > > Shinpei Ohtani
> > > [E-MAIL ADDRESS DELETED]
> > > =============================
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
>
>
> --
> =============================
> Shinpei Ohtani
> [E-MAIL ADDRESS DELETED]
> =============================
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内