JSTL - XML <x:param> Tag



The <x:param> tag is used along with the transform tag to set a parameter in the XSLT stylesheet

Attribute

The <x:param> tag has the following attributes −

Attribute Description Required Default
name Name of the XSLT parameter to set Yes Body
Value Value of the XSLT parameter to set No None

Example

Consider the following XSLT stylesheet style.xsl. Note the usage of <xsl:param...> tag and a variable {$bgColor}

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">

<xsl:output method = "html" indent = "yes"/>
<xsl:param name = "bgColor"/>

   <xsl:template match = "/">
      <html>
         <body>
            <xsl:apply-templates/>
         </body>
      </html>
   </xsl:template>

   <xsl:template match = "books">
      <table border = "1" width = "50%" bgColor = "{$bgColor}">
         <xsl:for-each select = "book">
            <tr>
               <td><i><xsl:value-of select = "name"/></i></td>
               <td><xsl:value-of select = "author"/></td>
               <td><xsl:value-of select = "price"/></td>
            </tr>
         </xsl:for-each>
      </table>
   </xsl:template>
   
</xsl:stylesheet>

Consider the following JSP file where we define the value of bgColor using the <x:param> tag inside the <x:transform> tag −

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>

<html>
   <head>
      <title>JSTL x:transform Tags</title>
   </head>

   <body>
      <h3>Books Info:</h3>
      <c:set var = "xmltext">
         <books>
            <book>
               <name>Padam History</name>
               <author>ZARA</author>
               <price>100</price>
            </book>
            
            <book>
               <name>Great Mistry</name>
               <author>NUHA</author>
               <price>2000</price>
            </book>
         </books>
      </c:set>

      <c:import url = "http://localhost:8080/style.xsl" var = "xslt"/>
      <x:transform xml = "${xmltext}" xslt = "${xslt}">
         <x:param name = "bgColor" value = "grey"/>
      </x:transform>

   </body>
</html>

You will receive the following result −

Books Info:

Padam History ZARA 100
Great Mistry NUHA 2000
jsp_standard_tag_library.htm
Advertisements