Resin 1.1
FAQ
Reference
JavaDoc
Demo
Java Tutorial
Getting Started
Configuration
Topics
JSP
XTP/XSL
JavaScript
JS Library
XTP intro
XTP to JSP
XPath
XPath Fun
XSL
XSL lite
XSL lite examples
JSP tag libraries with XSL
XML Template Pages encourages web sites to create JSP tag libraries. By putting the JSP creation in stylesheets, you can separate the programming from the web pages. The XTP pages can be simple XML or HTML documents and simply add the custom tags as necessary. The examples in this section use the full, verbose, XSL and JSP syntax. For those put off by the verbosity, the examples are rewritten in XSLT-lite examples.
Creating JSP from XTP
Resin creates a JSP file from an XTP file. XTP pages can separate the content (in XML) from the scripting (in XSL). The XSL stylesheets now become a palette of JSP actions you can use just by adding tags. Parse XTP file as HTML Find and parse XSL stylesheet Applying the stylesheet to the XTP, creating a JSP file Execute the JSP file A trivial example is a named counter. If the counter has an 'id' attribute, we'll use it at the value of the application variable. XTP pages can use the counter just by adding the tag:
counter.xtp
A counter example: <ct:counter id='test'/>
Here the patterns to do it. For efficiency, we've added the `cache` directive. The cache directive tells XTP to execute the stylesheet only once and cache the generated JSP file.
default.xsl
<xtp:directive.cache/> <xsl:template match='counter[@id]'> <jsp:expression> <xsl:text>application.attribute["</xsl:text> <xsl:value-of select='@id'/> <xsl:text>"]<xsl:text> </jsp:expression> </xsl:template> <xsl:template match='counter'> <jsp:expression> application.attribute.counter++ </jsp:expression> </xsl:template>
The following JSP file is the result. Resin will execute the generated JSP file to process HTTP requests. Because default.xsl was marked as cached, on following requests Resin will merely reexecute 'gen438.jsp'.
gen438.jsp
A counter example: <jsp:expression> application.attribute["test"]++ <jsp:expression>
Creating JSP flow control
XTP can also generate JSP control. Many programmers like using tags for programming, like Cold Fusion. Here's how to create a basic set of programming tags. ct:get prints the value of a variable ct:if generates an if statement ct:iter loops An example use might print the HTTP headers.
<ct:iter expr='request.header'/> <ct:get expr='i'/> : <ct:get expr='request.header[i]'/> </ct:iter>
Accept : image/gif, image/png User-Agent : Mozilla/4.5 Accept-Language : en Host : www.caucho.com
Here is the stylesheet:
definition of ct:get
<xsl:template match='ct:get'> <jsp:expression><xsl:value-of select='@expr'/></jsp:expression> </xsl:template>
definition of ct:if
<xsl:template match='ct:if'> <jsp:scriptlet> if (<xsl:value-of select='@expr'/>) { </jsp:scriptlet> <xsl:apply-templates/> <jsp:scriptlet>}</jsp:scriptlet> </xsl:template>
definition of ct:iter
<xsl:template match='ct:iter'> <jsp:scriptlet> for (var i in <xsl:value-of select='@expr'/>) { </jsp:scriptlet> <xsl:apply-templates/> <jsp:scriptlet>}</jsp:scriptlet> </xsl:template>
XTP intro |  | XPath
Copyright © 1998-2000 Caucho Technology. All rights reserved. Last modified: Thu, 16 Sep 1999 14:56:49 -0700 (PDT)