Perhaps JSTL can help make that a bit cleaner:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"; %>
<%@ taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html"; %>
<%@ taglib prefix="nested" uri="http://jakarta.apache.org/struts/tags-nested"; %>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml"; %>

<html:form action="/cart/ShoppingCartAction">
  <html:hidden property="method" value="process"/>
  <nested:define id="doc" property="xmlDoc" type="java.lang.String"/>
  <c:if test="${not empty doc}">
    <c:import var="xslt" url="/xsl/PrintShoppingCart.xsl"/>
    <x:transform xml="${doc}" xslt="${xslt}"/>
  </c:if>
</html:form>

Quoting Jeff Kyser <[EMAIL PROTECTED]>:

> Thanks Simon.
> 
> One of the first difficulties I encountered was with the xsl transform
> itself. I posted this (below) earlier, and didn't get any bites. See
> <EARLIER POST>...</EARLIER POST> below.  I kept getting
> handlePageException in PageContextImpl in later versions of
> Tomcat/Resin and could only make the following work instead.
> (It of course worked fine under Tomcat 4.1.10 and Struts 1.0 and
> whatever else is in the production environment, but I needed to  
> upgrade...
> And that (new stuff) started to look a lot like code that did not  
> belong on a JSP,
> hence my question...
> 
> -jeff
> 
> (what I have working now)
> 
>       <html:form action="/cart/ShoppingCartAction?method=process">
>       <nested:define id="doc" property="xmlDoc" type="java.lang.String"/>
> 
>       <%
>           String xslFile = getServletContext().getRealPath("") +  
> "/xsl/PrintShoppingCart.xsl";
>           if (doc != null && doc.trim().length() > 0) {
>               TransformerFactory tFactory =
>                   TransformerFactory.newInstance();
>               Transformer transformer =
>                   tFactory.newTransformer(new StreamSource(xslFile));
>               transformer.transform(new StreamSource(new StringReader(doc)),  
> new StreamResult(out));
>           }
>       %>
>       </html:form>
> 
> <EARLIER POST>
> Sorry, as I know this is off-topic, but been banging on
> it most of the day and can't find much on the web either.
> 
> Have experienced the same basic problem on:
> 
>       Tomcat 4.1.24
>       Resin 2.1.6,8,9
> 
> Can take an XML document, apply an XSL stylesheet to
> it using command-line java tool:
> 
>       java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT  
> foo.html
> 
> that works great.
> 
> Now, I take the same libraries - xalan.jar, xml-apis.jar, put them in
> my web app, and when I hit the jsp that does the same thing, I get:
> 
> ----- Root Cause -----
> javax.servlet.ServletException: org/apache/xalan/xslt/XSLTInputSource
>          at  
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex 
> tImpl.java:536)
>          at  
> org.apache.jsp.BrowseCatalog_jsp._jspService(BrowseCatalog_jsp.java:130)
>          at  
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> 
> Now, from what I can tell, XSLTInputSource is deprecated from an earlier
> version of xalan.jar
> 
> So, I take the xalan.jar file from a Tomcat 4.1.10 install that *does*  
> work, and
> I get another lovely exception, failing to find  
> org.apache.xalan.xslt.Process.getDefaultLiaison.
> (or something like that...)
> 
> Can't seem to isolate this.
> 
> anybody seen this, or have any suggestions?
> 
> TIA,
> 
> -jeff
> </EARLIER_POST>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


-- 
Kris Schneider <mailto:[EMAIL PROTECTED]>
D.O.Tech       <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to