![]() | ![]() | ![]() |
| |||||||
![]() | ||||||||||
![]() | ![]() | |||||||||
Resin 3.1 Documentation Examples Changes Overview Installation Configuration Quercus SOA/IoC JSP Servlets and Filters Admin (JMX) EJB Amber Security Performance Hessian XML and XSLT Third-party Troubleshooting/FAQ Introduction JAXP XML Path Language (XPath) XSLT Filter XSLT XPath Functions FAQ Scrapbook |
XSLT filters can be applied to the output of a JSP page or a Servlet. XSLT simplifies creating a uniform style for a site. XSLT converts XML to HTML or XML or WAP. It's easy to create different output depending on the browser. Just choose another stylesheet. The example below creates HTML or XML results from the same JSP. The JSP page creates a simple XML file. It tells Resin to use XSL filtering by setting the contentType to .web.xml ConfigurationThe filter must be configured in the web.xml: <web-app xmlns="http://caucho.com/ns/resin"> <filter filter-name='xslt' filter-class='com.caucho.filters.XsltFilter'/> <filter-mapping url-pattern='*.jsp' filter-name='xslt'/> </web-app> The Source Files<%@ page session=false contentType='x-application/xslt' %> <?xml-stylesheet href='xml.xsl'?> <top> <title>Hello, world</title> <count><%= 1 + 1 %></count> </top> Stylesheets belong in . If no stylesheet is selected, Resin will use .The xml.xsl stylesheet just copies the input to the output. Many stylesheets will use this rule as a default rule. <xsl:stylesheet> <xsl:template match='*|@*'> <xsl:copy> <xsl:apply-templates select='node()|@*'/> </xsl:copy> </xsl:template> </xsl:stylesheet> HTML generationThe HTML example is slightly more complicated. When it matches a , it generates the HTML header information. The tag just writes out the count.<xsl:stylesheet> <xsl:output media-type='text/html'/> <xsl:template match='top'> <html> <head> <title><xsl:value-of select='title'/></title> </head> <body bgcolor='white'> <h3><xsl:value-of select='title'/></h3> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match='count'> Count: <xsl:apply-templates/><br/> </xsl:template> <xsl:template match='title'/> </xsl:stylesheet>
|