You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by di...@locus.apache.org on 2000/12/14 14:36:57 UTC
cvs commit: xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java request.xsl
dims 00/12/14 05:36:56
Modified: src/org/apache/cocoon/components/language/markup/xsp Tag:
xml-cocoon2 XSPRequestHelper.java
src/org/apache/cocoon/components/language/markup/xsp/java
Tag: xml-cocoon2 request.xsl
Log:
Patches for "Added getSessionAttribute to request logicsheet" from
Lassi Immonen <li...@malla.urova.fi>
Revision Changes Path
No revision
No revision
1.1.2.6 +58 -1 xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/Attic/XSPRequestHelper.java
Index: XSPRequestHelper.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/Attic/XSPRequestHelper.java,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -r1.1.2.5 -r1.1.2.6
--- XSPRequestHelper.java 2000/08/31 16:41:59 1.1.2.5
+++ XSPRequestHelper.java 2000/12/14 13:36:49 1.1.2.6
@@ -10,6 +10,7 @@
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
import org.xml.sax.ContentHandler;
import org.xml.sax.helpers.AttributesImpl;
@@ -21,7 +22,7 @@
* The <code>HttpServletRequest</code> object helper
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Revision: 1.1.2.5 $ $Date: 2000/08/31 16:41:59 $
+ * @version CVS $Revision: 1.1.2.6 $ $Date: 2000/12/14 13:36:49 $
*/
public class XSPRequestHelper extends XSPObjectHelper {
/**
@@ -220,4 +221,60 @@
end(contentHandler, "header-names");
}
+
+ /**
+ * Return the given session attribute value or a user-provided default if
+ * none was specified.
+ *
+ * @param request The HttpServletRequest request
+ * @param name The parameter name
+ * @param defaultValue Value to substitute in absence of a parameter value
+ */
+ public static String getSessionAttribute(
+ HttpServletRequest request,
+ String name,
+ String defaultValue) {
+
+ HttpSession session = request.getSession(false);
+ String value = null;
+
+ if (session != null) {
+ value = (String) session.getAttribute(name);
+ }
+
+ if (value == null) {
+ value = defaultValue;
+ }
+
+ return value;
+ }
+
+ /**
+ * Output the given session attribute value or a user-provided default if
+ * none was specified.
+ *
+ * @param request The HttpServletRequest request
+ * @param contentHandler The SAX content handler
+ * @param name The parameter name
+ * @param defaultValue Value to substitute in absence of a parameter value
+ * @exception SAXException If a SAX error occurs
+ */
+ public static void getSessionAttribute(
+ HttpServletRequest request,
+ ContentHandler contentHandler,
+ String name,
+ String defaultValue
+ )
+ throws SAXException
+ {
+ AttributesImpl attr = new AttributesImpl();
+ addAttribute(attr, "name", name);
+
+ elementData(
+ contentHandler,
+ "attribute",
+ getSessionAttribute(request, name, defaultValue),
+ attr
+ );
+ }
}
No revision
No revision
1.1.2.7 +38 -1 xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java/Attic/request.xsl
Index: request.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java/Attic/request.xsl,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -r1.1.2.6 -r1.1.2.7
--- request.xsl 2000/08/31 15:52:37 1.1.2.6
+++ request.xsl 2000/12/14 13:36:53 1.1.2.7
@@ -11,7 +11,7 @@
<!--
* @author <a href="mailto:ricardo@apache.org>Ricardo Rocha</a>
- * @version CVS $Revision: 1.1.2.6 $ $Date: 2000/08/31 15:52:37 $
+ * @version CVS $Revision: 1.1.2.7 $ $Date: 2000/12/14 13:36:53 $
-->
<!-- XSP Request logicsheet for the Java language -->
@@ -39,6 +39,43 @@
<!-- <xsp-request:uri> -->
<xsp:logic>
XSPRequestHelper.getUri(request, this.contentHandler);
+ </xsp:logic>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="xsp-request:get-session-attribute">
+ <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>
+ <xsl:when test="default">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="xsp-request:default"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$as = 'string'">
+ <xsp:expr>
+ (XSPRequestHelper.getSessionAttribute(request, <xsl:copy-of select="$name"/>, <xsl:copy-of select="$default"/>))
+ </xsp:expr>
+ </xsl:when>
+ <xsl:when test="$as = 'xml'">
+ <xsp:logic>
+ XSPRequestHelper.getSessionAttribute(request, this.contentHandler, <xsl:copy-of select="$name"/>, <xsl:copy-of select="$default"/>);
</xsp:logic>
</xsl:when>
</xsl:choose>