<x:param>动作用于为转换(Transform)添加一个参数,而且只能用于<x:transform>动作体中。<x:param>动作的语法格式如下:
<x:param name="parameterName"
value="parameterValue" />
或
<x:param name="parameterName">
parameterValue
</x:param>
<x:param>动作共有两个属性,即name和value。
.1 name属性:指定参数名
【功能说明】name属性用于指定转换参数的名称,可以接受动态值。
【实例演示】
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<c:import var="doc" url="book.xml" charEncoding="GB2312" />
<c:import var="xsl" url="books.xsl" charEncoding="GB2312" />
<x:transform doc="${doc}" xslt="${xsl}">
<x:param name="color">
green
</x:param>
</x:transform>
其中,XSLT样式表books.xsl的内容如下:
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="color"/>
<xsl:template match="books">
<center>
<table width="75%">
<xsl:choose>
<xsl:when test="$color='blue'">
<tr bgcolor="lightblue">
<th>书名</th>
<th>类型</th>
<th>定价</th>
</tr>
</xsl:when>
<xsl:when test="$color='green'">
<tr bgcolor="lightgreen">
<th>书名</th>
<th>类型</th>
<th>定价</th>
</tr>
</xsl:when>
<xsl:otherwise>
<tr bgcolor="#DDDDDD">
<th>书名</th>
<th>类型</th>
<th>定价</th>
</tr>
</xsl:otherwise>
</xsl:choose>
<xsl:for-each select="book">
<tr bgcolor="#DDDDDD">
<td align="center">
<xsl:value-of select="name"/>
</td>
<td align="center">
<xsl:value-of select="type"/>
</td>
<td align="right">
<xsl:value-of select="price/@symbol"/>
<xsl:value-of select="price"/>
</td>
</tr>
</xsl:for-each>
</table>
</center>
</xsl:template>
</xsl:stylesheet>
示例代码的执行效果如图9.18所示。

图9.18 使用<x:param>动作的name属性
.2 value属性:指定参数值
【功能说明】value属性用于指定参数的值,可以接受动态值。
【实例演示】
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<c:import var="doc" url="book.xml" charEncoding="GB2312" />
<c:import var="xsl" url="books.xsl" charEncoding="GB2312" />
<x:transform doc="${doc}" xslt="${xsl}">
<x:param name="color" value="blue" />
</x:transform>
示例代码的执行效果如图9.19所示。

图9.19 使用<x:param>动作的value属性
相关高级JSP教程的学习,我将在以后陆续推出,敬请关注:http://www.itgao.com