[Yanel-commits] rev 20676 - in public/yanel/trunk/src:
core/java/org/wyona/yanel/servlet webapp webapp/xslt
simon at wyona.com
simon at wyona.com
Fri Dec 8 11:34:41 CET 2006
Author: simon
Date: 2006-12-08 11:34:39 +0100 (Fri, 08 Dec 2006)
New Revision: 20676
Added:
public/yanel/trunk/src/webapp/xslt/
public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl
Modified:
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
adds a xslt for the error page. fixes bug#5081. thanks to paloma!
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2006-12-08 08:41:39 UTC (rev 20675)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2006-12-08 10:34:39 UTC (rev 20676)
@@ -1,5 +1,6 @@
package org.wyona.yanel.servlet;
+import java.io.File;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.IOException;
@@ -16,6 +17,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
import org.wyona.yanel.core.Path;
import org.wyona.yanel.core.Resource;
@@ -1208,8 +1212,10 @@
private void setYanelOutput(HttpServletResponse response, Document doc) throws ServletException {
response.setContentType("application/xml");
try {
- javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(response.getWriter()));
-
+ File xsltFile = org.wyona.commons.io.FileUtil.file(config.getServletContext().getRealPath("/"), "xslt" + File.separator + "xmlInfo2xhtml.xsl");
+ Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
+ transformer.transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(response.getWriter()));
+
/*
OutputStream out = response.getOutputStream();
javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(out));
Added: public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl
===================================================================
--- public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl 2006-12-08 08:41:39 UTC (rev 20675)
+++ public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl 2006-12-08 10:34:39 UTC (rev 20676)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+ xmlns="http://www.w3.org/1999/xhtml"
+>
+
+ <xsl:output method="xhtml" encoding="UTF-8"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>
+ Yanel
+ <xsl:if test="child::node()/exception">
+ <i18n:text>- An error occurred</i18n:text>
+ </xsl:if>
+ </title>
+ </head>
+ <body>
+ <xsl:if test="child::node()/exception">
+ <h1>Yanel: An error occurred</h1>
+ <h2>Debugging Information</h2>
+ </xsl:if>
+ <p>
+ <h4>Servlet Context Real Path</h4>
+ <xsl:value-of select="child::node()/@servlet-context-real-path"/>
+ </p>
+ <xsl:apply-templates select="child::node()"/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="request">
+ <p>
+ <h4>Request:</h4>
+ <ul>
+ <li>Servlet Path: <xsl:value-of select="@servlet-path"/></li>
+ <li>URI: <xsl:value-of select="@uri"/></li>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="session">
+ <p>
+ <h4>Session:</h4>
+ <ul>
+ <li>Session ID: <xsl:value-of select="@id"/></li>
+ <xsl:for-each select="attribute">
+ <li><xsl:value-of select="@name"/><xsl:text>: </xsl:text> <xsl:value-of select="."/></li>
+ </xsl:for-each>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="resource-type-identifier">
+ <p>
+ <h4> Resource Type Identifier:</h4>
+ <ul>
+ <li>Namespace: <xsl:value-of select="@namespace"/></li>
+ <li>Local Name: <xsl:value-of select="@local-name"/></li>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="resource">
+ <p>
+ <h4>Resource:</h4>
+ <ul>
+ <li>View: <xsl:value-of select="view"/></li>
+ <xsl:if test="last-modified">
+ <li>Last Modified: <xsl:value-of select="last-modified"/></li>
+ </xsl:if>
+ <xsl:if test="revisions">
+ <li>Revisions: <xsl:apply-templates select="revisions"/></li>
+ </xsl:if>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="revisions">
+ <p>
+ <ul>
+ <xsl:for-each select="revision">
+ <li>Revision: <xsl:value-of select="."/></li>
+ </xsl:for-each>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="no-resource-type-identifier">
+ <p>
+ <h4>No Resource Type Identifier:</h4>
+ <ul>
+ <li>Servlet Path: <xsl:value-of select="@servlet-path"/></li>
+ </ul>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="exception">
+ <p>
+ <h4>Exception</h4>
+ <ul>
+ <xsl:if test="@status"><li>Status: <xsl:value-of select="@status"/></li></xsl:if>
+ <li>Error Message:
+ <ul>
+ <li><xsl:value-of select="."/></li>
+ </ul>
+ </li>
+ </ul>
+ </p>
+ </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
More information about the Yanel-commits
mailing list