You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2002/02/11 05:36:38 UTC
cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript request.xsl response.xsl
vgritsenko 02/02/10 20:36:38
Modified: src/java/org/apache/cocoon/components/language/markup/xsp
JSGenerator.java XSPRequestHelper.java
XSPResponseHelper.java
src/java/org/apache/cocoon/components/language/markup/xsp/java
request.xsl response.xsl xsp.xsl
src/java/org/apache/cocoon/components/language/markup/xsp/javascript
request.xsl response.xsl
Log:
Complete response logicsheet; request logicsheet bugfixes
Revision Changes Path
1.3 +45 -7 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/JSGenerator.java
Index: JSGenerator.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/JSGenerator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JSGenerator.java 10 Feb 2002 05:08:24 -0000 1.2
+++ JSGenerator.java 11 Feb 2002 04:36:38 -0000 1.3
@@ -64,6 +64,8 @@
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.language.LanguageException;
import org.apache.cocoon.environment.SourceResolver;
+import org.apache.cocoon.environment.Response;
+import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.generation.AbstractServerPage;
import org.apache.cocoon.xml.XMLizable;
@@ -84,6 +86,9 @@
import java.util.Date;
import java.util.Locale;
import java.util.Map;
+import java.text.ParseException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
/**
* Class representing interpreted XSP-generated
@@ -91,7 +96,7 @@
* written in Javascript language
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: JSGenerator.java,v 1.2 2002/02/10 05:08:24 vgritsenko Exp $
+ * @version CVS $Id: JSGenerator.java,v 1.3 2002/02/11 04:36:38 vgritsenko Exp $
*/
public class JSGenerator extends XSPGenerator
implements Configurable, Initializable {
@@ -365,15 +370,48 @@
// XSPResponseHelper
- public void setHeader(String name, String value) {
- XSPResponseHelper.setHeader(this.objectModel, name, value);
+ public void responseGetLocale()
+ throws SAXException {
+ XSPResponseHelper.getLocale(this.response, this.contentHandler);
+ }
+
+ public void addDateHeader(String name, long date) {
+ XSPResponseHelper.addDateHeader(this.response, name, date);
+ }
+
+ public void addDateHeader(String name, Date date) {
+ XSPResponseHelper.addDateHeader(this.response, name, date);
+ }
+
+ public void addDateHeader(String name, String date) throws ParseException {
+ XSPResponseHelper.addDateHeader(this.response, name, date);
+ }
+
+ public void addDateHeader(String name, String date, String format) throws ParseException {
+ XSPResponseHelper.addDateHeader(this.response, name, date, format);
+ }
+
+ public void addDateHeader(String name, String date, DateFormat format) throws ParseException {
+ XSPResponseHelper.addDateHeader(this.response, name, date, format);
+ }
+
+ public void setDateHeader(String name, long date) {
+ XSPResponseHelper.setDateHeader(this.response, name, date);
+ }
+
+ public void setDateHeader(String name, Date date) {
+ XSPResponseHelper.setDateHeader(this.response, name, date);
+ }
+
+ public void setDateHeader(String name, String date) throws ParseException {
+ XSPResponseHelper.setDateHeader(this.response, name, date);
}
- public void addHeader(String name, String value) {
- XSPResponseHelper.addHeader(this.objectModel, name, value);
+ public void setDateHeader(String name, String date, String format) throws ParseException {
+ XSPResponseHelper.setDateHeader(this.response, name, date, format);
}
- public String encodeURL(String input) {
- return XSPResponseHelper.encodeURL(this.objectModel, input);
+ public void setDateHeader(String name, String date, DateFormat format) throws ParseException {
+ XSPResponseHelper.setDateHeader(this.response, name, date, format);
}
}
1.9 +1 -2 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPRequestHelper.java
Index: XSPRequestHelper.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPRequestHelper.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- XSPRequestHelper.java 6 Feb 2002 17:10:16 -0000 1.8
+++ XSPRequestHelper.java 11 Feb 2002 04:36:38 -0000 1.9
@@ -75,7 +75,7 @@
* The <code>Request</code> object helper
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: XSPRequestHelper.java,v 1.8 2002/02/06 17:10:16 cziegeler Exp $
+ * @version CVS $Id: XSPRequestHelper.java,v 1.9 2002/02/11 04:36:38 vgritsenko Exp $
*/
public class XSPRequestHelper {
/**
@@ -102,7 +102,6 @@
public static void getLocale(Map objectModel, ContentHandler handler)
throws SAXException {
Request request = ObjectModelHelper.getRequest(objectModel);
- request.getLocale();
getLocale(request.getLocale(), handler);
}
1.6 +65 -40 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPResponseHelper.java
Index: XSPResponseHelper.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPResponseHelper.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XSPResponseHelper.java 6 Feb 2002 17:10:16 -0000 1.5
+++ XSPResponseHelper.java 11 Feb 2002 04:36:38 -0000 1.6
@@ -59,13 +59,21 @@
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Response;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Map;
+import java.util.Locale;
+import java.util.Date;
+import java.text.ParseException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
/**
* The XSP <code>Response</code> object helper
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: XSPResponseHelper.java,v 1.5 2002/02/06 17:10:16 cziegeler Exp $
+ * @version CVS $Id: XSPResponseHelper.java,v 1.6 2002/02/11 04:36:38 vgritsenko Exp $
*/
public class XSPResponseHelper {
/**
@@ -74,46 +82,63 @@
private static final String URI = Constants.XSP_RESPONSE_URI;
private static final String PREFIX = Constants.XSP_RESPONSE_PREFIX;
- /**
- * Set the content header for a given response
- *
- * @param objectModel The Map objectModel
- * @param name The header name
- * @param value The header value
- */
- public static void setHeader(Map objectModel, String name, String value) {
- Response response = ObjectModelHelper.getResponse(objectModel);
- response.setHeader(name, value);
- }
+ private static void getLocale(Locale locale, ContentHandler handler)
+ throws SAXException
+ {
+ XSPObjectHelper.start(URI, PREFIX, handler, "locale");
- /**
- * Set the content header for a given response
- *
- * @param objectModel The Map objectModel
- * @param name The parameter name
- * @param value The parameter value
- */
- public static void addHeader(
- Map objectModel,
- String name,
- String value
- ) {
- Response response = ObjectModelHelper.getResponse(objectModel);
- response.addHeader(name, value);
- }
+ XSPObjectHelper.elementData(URI, PREFIX, handler, "language",
+ locale.getLanguage());
+ XSPObjectHelper.elementData(URI, PREFIX, handler, "country",
+ locale.getCountry());
+ XSPObjectHelper.elementData(URI, PREFIX, handler, "variant",
+ locale.getVariant());
- /**
- * Encode the URL
- *
- * @param objectModel The Map objectModel
- * @param name The input url string
- */
- public static String encodeURL(
- Map objectModel,
- String input
- ) {
- Response response = ObjectModelHelper.getResponse(objectModel);
- return response.encodeURL(input);
- }
+ XSPObjectHelper.end(URI, PREFIX, handler, "locale");
+ }
+
+ public static void getLocale(Response response, ContentHandler handler)
+ throws SAXException {
+ getLocale(response.getLocale(), handler);
+ }
+
+ public static void addDateHeader(Response response, String name, long date) {
+ response.addDateHeader(name, date);
+ }
+
+ public static void addDateHeader(Response response, String name, Date date) {
+ response.addDateHeader(name, date.getTime());
+ }
+
+ public static void addDateHeader(Response response, String name, String date) throws ParseException {
+ addDateHeader(response, name, date, DateFormat.getDateInstance());
+ }
+
+ public static void addDateHeader(Response response, String name, String date, String format) throws ParseException {
+ addDateHeader(response, name, date, new SimpleDateFormat(format));
+ }
+
+ public static void addDateHeader(Response response, String name, String date, DateFormat format) throws ParseException {
+ response.addDateHeader(name, format.parse(date).getTime());
+ }
+
+ public static void setDateHeader(Response response, String name, long date) {
+ response.setDateHeader(name, date);
+ }
+
+ public static void setDateHeader(Response response, String name, Date date) {
+ response.setDateHeader(name, date.getTime());
+ }
+
+ public static void setDateHeader(Response response, String name, String date) throws ParseException {
+ setDateHeader(response, name, date, DateFormat.getDateInstance());
+ }
+
+ public static void setDateHeader(Response response, String name, String date, String format) throws ParseException {
+ setDateHeader(response, name, date, new SimpleDateFormat(format));
+ }
+ public static void setDateHeader(Response response, String name, String date, DateFormat format) throws ParseException {
+ response.setDateHeader(name, format.parse(date).getTime());
+ }
}
1.4 +9 -11 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/request.xsl
Index: request.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/request.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- request.xsl 3 Feb 2002 01:15:16 -0000 1.3
+++ request.xsl 11 Feb 2002 04:36:38 -0000 1.4
@@ -12,7 +12,7 @@
<!--
* @author <a href="mailto:ricardo@apache.org>Ricardo Rocha</a>
* @author <a href="mailto:vgritsenko@apache.org>Vadim Gritsenko</a>
- * @version CVS $Revision: 1.3 $ $Date: 2002/02/03 01:15:16 $
+ * @version CVS $Revision: 1.4 $ $Date: 2002/02/11 04:36:38 $
-->
<!-- XSP Request logicsheet for the Java language -->
@@ -428,7 +428,9 @@
</xsl:when>
<xsl:when test="$as = 'xml'">
<xsp:element name="xsp-request:attribute">
- <xsp:attribute name="name" value="{$name}"/>
+ <xsp:attribute name="name">
+ <xsp:expr><xsl:copy-of select="$name"/></xsp:expr>
+ </xsp:attribute>
<xsp:expr>request.getAttribute(<xsl:copy-of select="$name"/>)</xsp:expr>
</xsp:element>
</xsl:when>
@@ -441,7 +443,7 @@
</xsl:variable>
<xsl:variable name="content">
<xsl:call-template name="get-nested-content">
- <xsl:with-param name="content" select="*|text()"/>
+ <xsl:with-param name="content" select="."/>
</xsl:call-template>
</xsl:variable>
<xsp:logic>
@@ -831,13 +833,11 @@
<xsl:variable name="name">
<xsl:call-template name="value-for-name"/>
</xsl:variable>
-
<xsl:variable name="as">
<xsl:call-template name="value-for-as">
<xsl:with-param name="default" select="'string'"/>
</xsl:call-template>
</xsl:variable>
-
<xsl:variable name="default">
<xsl:choose>
<xsl:when test="@default">"<xsl:value-of select="@default"/>"</xsl:when>
@@ -849,19 +849,18 @@
<xsl:otherwise>null</xsl:otherwise>
</xsl:choose>
</xsl:variable>
-
<xsl:choose>
<xsl:when test="$as = 'string'">
<xsp:expr>
- (XSPRequestHelper.getSessionAttribute(objectModel,
+ (XSPRequestHelper.getSessionAttribute(objectModel,
<xsl:copy-of select="$name"/>, <xsl:copy-of select="$default"/>))
</xsp:expr>
</xsl:when>
<xsl:when test="$as = 'xml'">
<!-- <xsp-request:session-attribute name="..."> -->
<xsp:logic>
- XSPRequestHelper.getSessionAttribute(objectModel,
- this.contentHandler,
+ XSPRequestHelper.getSessionAttribute(objectModel,
+ this.contentHandler,
<xsl:copy-of select="$name"/>, <xsl:copy-of select="$default"/>);
</xsp:logic>
</xsl:when>
@@ -958,8 +957,7 @@
select="@container-encoding"/>"</xsl:when>
<xsl:when test="xsp-request:container-encoding">
<xsl:call-template name="get-nested-content">
- <xsl:with-param name="content"
- select="xsp-request:container-encoding"/>
+ <xsl:with-param name="content" select="xsp-request:container-encoding"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>null</xsl:otherwise>
1.2 +296 -13 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/response.xsl
Index: response.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/response.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- response.xsl 3 Jan 2002 12:31:11 -0000 1.1
+++ response.xsl 11 Feb 2002 04:36:38 -0000 1.2
@@ -11,29 +11,142 @@
<!--
* @author <a href="mailto:ricardo@apache.org>Ricardo Rocha</a>
- * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:11 $
+ * @version CVS $Revision: 1.2 $ $Date: 2002/02/11 04:36:38 $
-->
<!-- XSP Response logicsheet for the Java language -->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsp="http://apache.org/xsp"
- xmlns:xsp-response="http://apache.org/xsp/response/2.0"
+<xsl:stylesheet version="1.0"
+ xmlns:xsp="http://apache.org/xsp"
+ xmlns:xsp-response="http://apache.org/xsp/response/2.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
->
- <xsl:template match="xsp-response:set-header">
+
+ <xsl:template match="xsp-response:get-character-encoding">
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'string'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>response.getCharacterEncoding()</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:element name="xsp-response:character-encoding">
+ <xsp:expr>response.getCharacterEncoding()</xsp:expr>
+ </xsp:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:get-locale">
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'object'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>String.valueOf(response.getLocale())</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'object'">
+ <xsp:expr>response.getLocale()</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:logic>
+ XSPResponseHelper.getLocale(response, contentHandler);
+ </xsp:logic>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:set-locale">
+ <xsp:logic>
+ response.setLocale(
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>);
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:add-cookie">
+ <xsp:logic>
+ response.addCookie(
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>);
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:add-date-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="date">
+ <xsl:choose>
+ <xsl:when test="@date">"<xsl:value-of select="@date"/>"</xsl:when>
+ <xsl:when test="xsp-response:date">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:date"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="format">
+ <xsl:choose>
+ <xsl:when test="@format">"<xsl:value-of select="@format"/>"</xsl:when>
+ <xsl:when test="xsp-response:format">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:format"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsp:logic>
+ <xsl:choose>
+ <xsl:when test="$format != 'null'">
+ XSPResponseHelper.addDateHeader(response,
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ (<xsl:copy-of select="$date"/>),
+ (<xsl:copy-of select="$format"/>));
+ </xsl:when>
+ <xsl:otherwise>
+ XSPResponseHelper.addDateHeader(response,
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ (<xsl:copy-of select="$date"/>));
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:add-header">
<xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="value">
<xsl:choose>
- <xsl:when test="@name">"<xsl:value-of select="@name"/>"</xsl:when>
- <xsl:when test="xsp-response:name">
+ <xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:when test="xsp-response:value">
<xsl:call-template name="get-nested-content">
- <xsl:with-param name="content" select="xsp-response:name"/>
+ <xsl:with-param name="content" select="xsp-response:value"/>
</xsl:call-template>
</xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
</xsl:choose>
</xsl:variable>
+ <xsp:logic>
+ response.addHeader(
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ String.valueOf(<xsl:copy-of select="$value"/>));
+ </xsp:logic>
+ </xsl:template>
+ <xsl:template match="xsp-response:add-int-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
<xsl:variable name="value">
<xsl:choose>
<xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
@@ -42,15 +155,185 @@
<xsl:with-param name="content" select="xsp-response:value"/>
</xsl:call-template>
</xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsp:logic>
+ response.addIntHeader(
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ Integer.parseInt(String.valueOf(<xsl:copy-of select="$value"/>)));
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:contains-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'boolean'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'boolean'">
+ <xsp:expr>response.containsHeader(String.valueOf(<xsl:copy-of select="$name"/>))</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>String.valueOf(response.containsHeader(
+ String.valueOf(<xsl:copy-of select="$name"/>)))</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:element name="xsp-response:contains-header">
+ <xsp:expr>response.containsHeader(String.valueOf(<xsl:copy-of select="$name"/>))</xsp:expr>
+ </xsp:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:encode-url">
+ <xsl:variable name="url">
+ <xsl:choose>
+ <xsl:when test="@url">"<xsl:value-of select="@url"/>"</xsl:when>
+ <xsl:when test="xsp-response:url">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:url"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'string'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>response.encodeURL(String.valueOf(<xsl:copy-of select="$url"/>))</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:element name="xsp-response:encode-url">
+ <xsp:expr>
+ response.encodeURL(String.valueOf(<xsl:copy-of select="$url"/>))
+ </xsp:expr>
+ </xsp:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:set-date-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="date">
+ <xsl:choose>
+ <xsl:when test="@date">"<xsl:value-of select="@date"/>"</xsl:when>
+ <xsl:when test="xsp-response:date">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:date"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="format">
+ <xsl:choose>
+ <xsl:when test="@format">"<xsl:value-of select="@format"/>"</xsl:when>
+ <xsl:when test="xsp-response:format">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:format"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsp:logic>
+ <xsl:choose>
+ <xsl:when test="$format">
+ XSPResponseHelper.setDateHeader(response,
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ String.valueOf(
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="$date"/>
+ </xsl:call-template>
+ ),
+ String.valueOf(<xsl:copy-of select="$format"/>));
+ </xsl:when>
+ <xsl:otherwise>
+ XSPResponseHelper.setDateHeader(response,
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="$date"/>
+ </xsl:call-template>);
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:set-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="value">
+ <xsl:choose>
+ <xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:when test=".">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>
+ </xsl:when>
<xsl:otherwise>""</xsl:otherwise>
</xsl:choose>
</xsl:variable>
+ <xsp:logic>
+ response.setHeader(
+ String.valueOf(<xsl:copy-of select="$name"/>),
+ String.valueOf(<xsl:copy-of select="$value"/>));
+ </xsp:logic>
+ </xsl:template>
+ <xsl:template match="xsp-response:set-int-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="value">
+ <xsl:choose>
+ <xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<xsp:logic>
- XSPResponseHelper.setHeader(objectModel, <xsl:value-of select="$name"/>, <xsl:value-of select="$value"/>);
+ response.setIntHeader(String.valueOf(<xsl:copy-of select="$name"/>),
+ Integer.parseInt(String.valueOf(<xsl:copy-of select="$value"/>)));
</xsp:logic>
</xsl:template>
+
+
+ <xsl:template name="value-for-as">
+ <xsl:param name="default"/>
+ <xsl:choose>
+ <xsl:when test="@as"><xsl:value-of select="@as"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="value-for-name">
+ <xsl:choose>
+ <xsl:when test="@name">"<xsl:value-of select="@name"/>"</xsl:when>
+ <xsl:when test="xsp-response:name">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
<xsl:template name="get-nested-content">
<xsl:param name="content"/>
<xsl:choose>
@@ -60,7 +343,7 @@
<xsl:otherwise>"<xsl:value-of select="$content"/>"</xsl:otherwise>
</xsl:choose>
</xsl:template>
-
+
<xsl:template match="@*|*|text()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
1.4 +3 -3 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl
Index: xsp.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- xsp.xsl 6 Feb 2002 04:40:28 -0000 1.3
+++ xsp.xsl 11 Feb 2002 04:36:38 -0000 1.4
@@ -12,7 +12,7 @@
<!--
* @author <a href="mailto:ricardo@apache.org>Ricardo Rocha</a>
* @author <a href="sylvain.wallez@anyware-tech.com">Sylvain Wallez</a>
- * @version CVS $Revision: 1.3 $ $Date: 2002/02/06 04:40:28 $
+ * @version CVS $Revision: 1.4 $ $Date: 2002/02/11 04:36:38 $
-->
<!-- XSP Core logicsheet for the Java language -->
@@ -100,8 +100,8 @@
/* Built-in parameters available for use */
// context - ServletContext
- // request - HttpServletRequest
- // response - HttpServletResponse
+ // request - org.apache.cocoon.environment.Request
+ // response - org.apache.cocoon.environment.Response
// parameters - parameters defined in the sitemap
/* User Class Declarations */
1.2 +4 -2 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript/request.xsl
Index: request.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript/request.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- request.xsl 9 Feb 2002 04:16:38 -0000 1.1
+++ request.xsl 11 Feb 2002 04:36:38 -0000 1.2
@@ -12,7 +12,7 @@
<!--
* @author <a href="mailto:ricardo@apache.org>Ricardo Rocha</a>
* @author <a href="mailto:vgritsenko@apache.org>Vadim Gritsenko</a>
- * @version CVS $Revision: 1.1 $ $Date: 2002/02/09 04:16:38 $
+ * @version CVS $Revision: 1.2 $ $Date: 2002/02/11 04:36:38 $
-->
<!-- XSP Request logicsheet for the Javascript language -->
@@ -418,7 +418,9 @@
</xsl:when>
<xsl:when test="$as = 'xml'">
<xsp:element name="xsp-request:attribute">
- <xsp:attribute name="name" value="{$name}"/>
+ <xsp:attribute name="name">
+ <xsp:expr><xsl:copy-of select="$name"/></xsp:expr>
+ </xsp:attribute>
<xsp:expr>request.getAttribute(<xsl:copy-of select="$name"/>)</xsp:expr>
</xsp:element>
</xsl:when>
1.2 +295 -14 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript/response.xsl
Index: response.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript/response.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- response.xsl 9 Feb 2002 04:16:38 -0000 1.1
+++ response.xsl 11 Feb 2002 04:36:38 -0000 1.2
@@ -10,30 +10,141 @@
-->
<!--
- * @author <a href="mailto:vgritsenko@apache.org>Vadim Gritsenko</a>
- * @version CVS $Revision: 1.1 $ $Date: 2002/02/09 04:16:38 $
+ * @author <a href="mailto:ricardo@apache.org>Ricardo Rocha</a>
+ * @version CVS $Revision: 1.2 $ $Date: 2002/02/11 04:36:38 $
-->
-<!-- XSP Response logicsheet for the Javascript language -->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsp="http://apache.org/xsp"
- xmlns:xsp-response="http://apache.org/xsp/response/2.0"
+<!-- XSP Response logicsheet for the Java language -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsp="http://apache.org/xsp"
+ xmlns:xsp-response="http://apache.org/xsp/response/2.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
->
- <xsl:template match="xsp-response:set-header">
+
+ <xsl:template match="xsp-response:get-character-encoding">
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'string'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>response.getCharacterEncoding()</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:element name="xsp-response:character-encoding">
+ <xsp:expr>response.getCharacterEncoding()</xsp:expr>
+ </xsp:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:get-locale">
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'object'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>String(response.getLocale())</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'object'">
+ <xsp:expr>response.getLocale()</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:logic>
+ page.responseGetLocale();
+ </xsp:logic>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:set-locale">
+ <xsp:logic>
+ response.setLocale(
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>);
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:add-cookie">
+ <xsp:logic>
+ response.addCookie(
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>);
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:add-date-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="date">
+ <xsl:choose>
+ <xsl:when test="@date">"<xsl:value-of select="@date"/>"</xsl:when>
+ <xsl:when test="xsp-response:date">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:date"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="format">
+ <xsl:choose>
+ <xsl:when test="@format">"<xsl:value-of select="@format"/>"</xsl:when>
+ <xsl:when test="xsp-response:format">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:format"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsp:logic>
+ <xsl:choose>
+ <xsl:when test="$format != 'null'">
+ page.addDateHeader(String(<xsl:copy-of select="$name"/>),
+ (<xsl:copy-of select="$date"/>),
+ (<xsl:copy-of select="$format"/>));
+ </xsl:when>
+ <xsl:otherwise>
+ page.addDateHeader(String(<xsl:copy-of select="$name"/>),
+ (<xsl:copy-of select="$date"/>));
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:add-header">
<xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="value">
<xsl:choose>
- <xsl:when test="@name">"<xsl:value-of select="@name"/>"</xsl:when>
- <xsl:when test="xsp-response:name">
+ <xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:when test="xsp-response:value">
<xsl:call-template name="get-nested-content">
- <xsl:with-param name="content" select="xsp-response:name"/>
+ <xsl:with-param name="content" select="xsp-response:value"/>
</xsl:call-template>
</xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
</xsl:choose>
</xsl:variable>
+ <xsp:logic>
+ response.addHeader(
+ String(<xsl:copy-of select="$name"/>),
+ String(<xsl:copy-of select="$value"/>));
+ </xsp:logic>
+ </xsl:template>
+ <xsl:template match="xsp-response:add-int-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
<xsl:variable name="value">
<xsl:choose>
<xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
@@ -42,15 +153,185 @@
<xsl:with-param name="content" select="xsp-response:value"/>
</xsl:call-template>
</xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsp:logic>
+ response.addIntHeader(
+ String(<xsl:copy-of select="$name"/>),
+ String(<xsl:copy-of select="$value"/>));
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:contains-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'boolean'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'boolean'">
+ <xsp:expr>response.containsHeader(String(<xsl:copy-of select="$name"/>))</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>String(response.containsHeader(
+ String(<xsl:copy-of select="$name"/>)))</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:element name="xsp-response:contains-header">
+ <xsp:expr>response.containsHeader(String(<xsl:copy-of select="$name"/>))</xsp:expr>
+ </xsp:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:encode-url">
+ <xsl:variable name="url">
+ <xsl:choose>
+ <xsl:when test="@url">"<xsl:value-of select="@url"/>"</xsl:when>
+ <xsl:when test="xsp-response:url">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:url"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="as">
+ <xsl:call-template name="value-for-as">
+ <xsl:with-param name="default" select="'string'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>response.encodeURL(String(<xsl:copy-of select="$url"/>))</xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:element name="xsp-response:encode-url">
+ <xsp:expr>
+ response.encodeURL(String(<xsl:copy-of select="$url"/>))
+ </xsp:expr>
+ </xsp:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:set-date-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="date">
+ <xsl:choose>
+ <xsl:when test="@date">"<xsl:value-of select="@date"/>"</xsl:when>
+ <xsl:when test="xsp-response:date">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:date"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="format">
+ <xsl:choose>
+ <xsl:when test="@format">"<xsl:value-of select="@format"/>"</xsl:when>
+ <xsl:when test="xsp-response:format">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:format"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsp:logic>
+ <xsl:choose>
+ <xsl:when test="$format">
+ page.setDateHeader(
+ String(<xsl:copy-of select="$name"/>),
+ String(
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="$date"/>
+ </xsl:call-template>
+ ),
+ String(<xsl:copy-of select="$format"/>));
+ </xsl:when>
+ <xsl:otherwise>
+ page.setDateHeader(
+ String(<xsl:copy-of select="$name"/>),
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="$date"/>
+ </xsl:call-template>);
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsp:logic>
+ </xsl:template>
+
+ <xsl:template match="xsp-response:set-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="value">
+ <xsl:choose>
+ <xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:when test=".">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>
+ </xsl:when>
<xsl:otherwise>""</xsl:otherwise>
</xsl:choose>
</xsl:variable>
+ <xsp:logic>
+ response.setHeader(
+ String(<xsl:copy-of select="$name"/>),
+ String(<xsl:copy-of select="$value"/>));
+ </xsp:logic>
+ </xsl:template>
+ <xsl:template match="xsp-response:set-int-header">
+ <xsl:variable name="name">
+ <xsl:call-template name="value-for-name"/>
+ </xsl:variable>
+ <xsl:variable name="value">
+ <xsl:choose>
+ <xsl:when test="@value">"<xsl:value-of select="@value"/>"</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<xsp:logic>
- page.setHeader(<xsl:value-of select="$name"/>, <xsl:value-of select="$value"/>);
+ response.setIntHeader(String(<xsl:copy-of select="$name"/>),
+ String(<xsl:copy-of select="$value"/>));
</xsp:logic>
</xsl:template>
+
+
+ <xsl:template name="value-for-as">
+ <xsl:param name="default"/>
+ <xsl:choose>
+ <xsl:when test="@as"><xsl:value-of select="@as"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="value-for-name">
+ <xsl:choose>
+ <xsl:when test="@name">"<xsl:value-of select="@name"/>"</xsl:when>
+ <xsl:when test="xsp-response:name">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-response:name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
<xsl:template name="get-nested-content">
<xsl:param name="content"/>
<xsl:choose>
@@ -60,7 +341,7 @@
<xsl:otherwise>"<xsl:value-of select="$content"/>"</xsl:otherwise>
</xsl:choose>
</xsl:template>
-
+
<xsl:template match="@*|*|text()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org