[Seasar-user:6705] Re: [S2JSF1.1] S2JSFでツリーコンポーネントを使用するには?
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2007年 3月 15日 (木) 17:22:39 JST
素早いご回答ありがとうございます。
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 メーリングリストの案内