Solved

Passing parameters to XSL using JSTL?

Posted on 2008-10-22
3
1,455 Views
Last Modified: 2013-11-24
I'm trying to pass a couple parameters back to XSL using the JSTL tag library, but the values are not getting passed.  My code is attached.  

The page loads, but the two values are not being passed.  All I get is a page without any content that would have been filled in the for-each loop.


///// JSP code ////
 

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

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

<%

	String pageStart = "1";

	String pageLimit = "10";

	

	if (request.getParameter("s") != null)

	{

		pageStart = (String)request.getParameter("s");

	}

	

	if (request.getParameter("l") != null)

		pageLimit = (String)request.getParameter("l");

	

	pageContext.setAttribute("pageStart",pageStart);

	pageContext.setAttribute("pageLimit",pageLimit);
 

%>
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>test</title>

</head>
 

<body>

    <c:import url="test2.xml" var="xmldoc" />

    <c:import url="test2.xsl" var="xslt" />

    <x:transform xml="${xmldoc}" xslt="${xslt}">

    	<x:param name="pageLimit" value="1"/>

         <x:param name="pageStart" value="10"/>

    </x:transform>

</body>

</html>
 
 
 

////// XSL: /////////

<?xml version="1.0"?> 

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

<xsl:output method="html" omit-xml-declaration="yes"/>

<xsl:strip-space elements="*"/>

	<xsl:template match="/">

      <xsl:param name="pageStart" />

      <xsl:param name="pageLimit" />

      <xsl:variable name="end" select="$pageStart + $pageLimit - 1"/>

  	  <xsl:variable name="docsort" select="Table/Row[position() &gt;= $pageStart and position() &lt;= $end]"/>

      <html>

        <body>

          <h2>Testing</h2>

          <table>

            <tr>

              <td>

                <xsl:if test="$pageStart - $pageLimit &gt;= 1">

                    <a href="?s={$pageStart - $pageLimit}&amp;l={$pageLimit}">prev</a>

                </xsl:if>

              </td>

              <td align="right">

                <a href="?s={$pageStart + 1}&amp;l={$pageLimit}">next</a>

              </td>

            </tr>

            <tr bgcolor="#CCCCCC">

              <th>Element 1</th>

              <th>Element 2</th>

            </tr>

            <xsl:for-each select="$docsort">

                    <tr>

                    	<xsl:for-each select="Table/Row/Cell">

                      		<td><xsl:value-of select="element1"/></td>

                      	</xsl:for-each>

                    </tr>

            </xsl:for-each>

          </table>

        </body>

      </html>

	</xsl:template>

</xsl:stylesheet>
 

//// XML FILE ////
 

<?xml version="1.0"?>

<Table>

   <Row>

    <Cell>testing</Cell>

    <Cell>John/Cell>

    <Cell>Smith</Cell>

    <Cell>Ohio</Cell>

   </Row>

</Table>

Open in new window

0
Comment
Question by:cacklebunny
  • 2
3 Comments
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 100 total points
ID: 22777024
The parameters are local to the template for match="/"
and should be global

 <?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
      <xsl:param name="pageStart" />
      <xsl:param name="pageLimit" />
      <xsl:template match="/">
...

should work
 
0
 
LVL 2

Author Closing Comment

by:cacklebunny
ID: 31508760
Sure did, thanks!
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 22781246
welcome
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Preface In the first article: A Better Website Login System (http://www.experts-exchange.com/A_2902.html) I introduced the EE Collaborative Login System and its intended purpose. In this article I will discuss some of the design consideratio…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now