Re: XTags: Usage of org.dom4j.Documents?
Hi Manuel From: Manuel Tromm [EMAIL PROTECTED] thank you again for your help on my XTags-question. I hope you enjoyed your vacation. ;-) I did, thanks! Though after flying from Spain to London then to Texas for my day-job, I think I need another vacation ;-) I've tried it out with the latest XTags build and dom4j-1.0 under Tomcat 3.2.2. Using the xtags:parse id=myDoc in combination with the xtags:forEach context=%= myDoc % works fine, but passing in an org.dom4j.Document via the context attribute will lead the forEach-XTag to an exception. The exception always occurrs *after the last* iteration. What can I do? Have I done something wrong or is it a bug? I've attached a test JSP-File to this mail for you. I've fixed the bug, it was a simple change and its committed into CVS. It should appear in tonights nightly build (or you could take the latest from CVS if you like). I've also added your test case in the examples/web/test directory so you can try out your test case in the standard XTags distro. Thanks for spotting this. James _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
Re: XTags: Usage of org.dom4j.Documents?
Hi James, thank you again for your help on my XTags-question. I hope you enjoyed your vacation. ;-) I've tried it out with the latest XTags build and dom4j-1.0 under Tomcat 3.2.2. Using the xtags:parse id=myDoc in combination with the xtags:forEach context=%= myDoc % works fine, but passing in an org.dom4j.Document via the context attribute will lead the forEach-XTag to an exception. The exception always occurrs *after the last* iteration. What can I do? Have I done something wrong or is it a bug? I've attached a test JSP-File to this mail for you. Regards, Manuel h1Error: 500/h1 h2Location: /jsp/test_for_each_context.jsp/h2bInternal Servlet Error:/bbrprejavax.servlet.ServletException at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp l.java:459) at jsp._0002fjsp_0002ftest_0005ffor_0005feach_0005fcontext_0002ejsptest_0005ffo r_0005feach_0005fcontext_jsp_0._jspService(_0002fjsp_0002ftest_0005ffor_0005 feach_0005fcontext_0002ejsptest_0005ffor_0005feach_0005fcontext_jsp_0.java:1 34) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.ja va:130) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja va:282) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79 7) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501) at java.lang.Thread.run(Thread.java:484) /pre bRoot cause:/b prejava.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:380) at org.apache.jasper.runtime.PageContextImpl.setAttribute(PageContextImpl.java: 258) at org.apache.taglibs.xtags.xpath.TagHelper.setInputNodes(TagHelper.java:160) at org.apache.taglibs.xtags.xpath.ForEachTag.doAfterBody(ForEachTag.java:154) at jsp._0002fjsp_0002ftest_0005ffor_0005feach_0005fcontext_0002ejsptest_0005ffo r_0005feach_0005fcontext_jsp_0._jspService(_0002fjsp_0002ftest_0005ffor_0005 feach_0005fcontext_0002ejsptest_0005ffor_0005feach_0005fcontext_jsp_0.java:1 15) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.ja va:130) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja va:282) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79 7) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501) at java.lang.Thread.run(Thread.java:484) /pre -Ursprüngliche Nachricht- Von: James Strachan [mailto:[EMAIL PROTECTED]] Gesendet: Sonntag, 9. September 2001 21:21 An: [EMAIL PROTECTED] Betreff: Re: XTags: Usage of org.dom4j.Documents? Hi Manuel Sorry for the delay getting back to you, I'm just back from vacation. The quick answer is absolutely yes - you can pass in documents, nodes or 'node sets' (a List of Node objects) to all the tags. This is achieved via either the context attribute using a scriptlet expression or via XPath variables. e.g. xtags:forEach select
Re: XTags: Usage of org.dom4j.Documents?
Hi Manuel Thanks - you've found a bug - am fixing it shortly, I'll let you know when its done. James - Original Message - From: Manuel Tromm [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, September 10, 2001 2:29 PM Subject: Re: XTags: Usage of org.dom4j.Documents? Hi James, thank you again for your help on my XTags-question. I hope you enjoyed your vacation. ;-) I've tried it out with the latest XTags build and dom4j-1.0 under Tomcat 3.2.2. Using the xtags:parse id=myDoc in combination with the xtags:forEach context=%= myDoc % works fine, but passing in an org.dom4j.Document via the context attribute will lead the forEach-XTag to an exception. The exception always occurrs *after the last* iteration. What can I do? Have I done something wrong or is it a bug? I've attached a test JSP-File to this mail for you. Regards, Manuel h1Error: 500/h1 h2Location: /jsp/test_for_each_context.jsp/h2bInternal Servlet Error:/bbrprejavax.servlet.ServletException at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp l.java:459) at jsp._0002fjsp_0002ftest_0005ffor_0005feach_0005fcontext_0002ejsptest_0005ffo r_0005feach_0005fcontext_jsp_0._jspService(_0002fjsp_0002ftest_0005ffor_0005 feach_0005fcontext_0002ejsptest_0005ffor_0005feach_0005fcontext_jsp_0.java:1 34) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.ja va:130) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja va:282) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79 7) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501) at java.lang.Thread.run(Thread.java:484) /pre bRoot cause:/b prejava.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:380) at org.apache.jasper.runtime.PageContextImpl.setAttribute(PageContextImpl.java: 258) at org.apache.taglibs.xtags.xpath.TagHelper.setInputNodes(TagHelper.java:160) at org.apache.taglibs.xtags.xpath.ForEachTag.doAfterBody(ForEachTag.java:154) at jsp._0002fjsp_0002ftest_0005ffor_0005feach_0005fcontext_0002ejsptest_0005ffo r_0005feach_0005fcontext_jsp_0._jspService(_0002fjsp_0002ftest_0005ffor_0005 feach_0005fcontext_0002ejsptest_0005ffor_0005feach_0005fcontext_jsp_0.java:1 15) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.ja va:130) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja va:282) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79 7) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501) at java.lang.Thread.run(Thread.java:484) /pre -Ursprüngliche Nachricht- Von: James Strachan [mailto:[EMAIL PROTECTED]] Gesendet: Sonntag, 9. September 2001 21:21 An: [EMAIL PROTECTED] Betreff: Re: XTags: Usage of org.dom4j.Documents? Hi Manuel Sorry for the delay getting back to you, I'm just back from vacation. The quick answer is absolutely yes - you can pass in documents, nodes or 'node sets' (a List of Node objects) to all the tags. This is achieved via either the context attribute using a scriptlet
Re: XTags: Usage of org.dom4j.Documents?
Hi Manuel Sorry for the delay getting back to you, I'm just back from vacation. The quick answer is absolutely yes - you can pass in documents, nodes or 'node sets' (a List of Node objects) to all the tags. This is achieved via either the context attribute using a scriptlet expression or via XPath variables. e.g. xtags:forEach select=foo/bar context=%= mydoc % ... /xtags:forEach You can define a variable for any expression or parse to allow you to evaluate once and keep it around for future reference. e.g. xtags:parse id=mydoc some taghello there/tag /some /xtags:parse then later... xtags:valueOf select=/some/tag context=%= mydoc %/ or you could use the XPath variables. Whenever an attribute is defined in page / request / session / application scope it is available as an XPath variable. So you could rewrite the above as xtags:valueOf select=$mydoc/some/tag/ You can also use the xtags:variable tag to define a variable of an XPath expression, to avoid reevaluation. e.g. xtags:variable id=mytags select=//tag/ Of course you could always define your own scripting variables for documents and pass them in as a context parameter or create your own attributes and use the XPath variable syntax. Hope that helps. James - Original Message - From: Manuel Tromm [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, September 06, 2001 9:36 AM Subject: XTags: Usage of org.dom4j.Documents? Hi folks, I've got a question about using XTags: The common way to use the XTags, is to parse an XML document from somewhere by using the xtags:parse-Tag. After the XML-Code has been parsed, it can be accessed by the different X-Tags... Sometimes I have to use the XML-Source (that is needed as input for XTags) twice or more or at completely different locations of my web-application. For this reason I've added the XML-Code to a cache. The problem is now, that every time when the XTags-JSP is requested, the XML-Input has to be parsed by the XTags again. That means a lack of performance. Now my question: Because the XTags are built on top of the dom4j, I'd like to know if there is any way to use an (already parsed!) org.dom4j.Document as input for XTags, so that I don't have to parse XML-Sources twice? If yet there is no way, I'd like to ask the developers to provide an appropriate Tag, because I think it would be also quite helpful for other users. Does someone know a solution? Regards, Manuel Tromm
XTags: Usage of org.dom4j.Documents?
Hi folks, I've got a question about using XTags: The common way to use the XTags, is to parse an XML document from somewhere by using the xtags:parse-Tag. After the XML-Code has been parsed, it can be accessed by the different X-Tags... Sometimes I have to use the XML-Source (that is needed as input for XTags) twice or more or at completely different locations of my web-application. For this reason I've added the XML-Code to a cache. The problem is now, that every time when the XTags-JSP is requested, the XML-Input has to be parsed by the XTags again. That means a lack of performance. Now my question: Because the XTags are built on top of the dom4j, I'd like to know if there is any way to use an (already parsed!) org.dom4j.Document as input for XTags, so that I don't have to parse XML-Sources twice? If yet there is no way, I'd like to ask the developers to provide an appropriate Tag, because I think it would be also quite helpful for other users. Does someone know a solution? Regards, Manuel Tromm