<x:set>动作用于将一个XPath表达式的计算结果保存到一个作用域变量中,其语法格式如下:
<x:set select="XPathExpression"
var="varName" [scope="page|request|session|application"] />
<x:set>动作共有3个属性,包括select、var和scope。
.1 select属性:指定XPath表达式
【功能说明】select属性用于指定要计算的XPath表达式,不可以接受动态值。
【实例演示】
<%@ 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" %>
<x:parse var="txl" scope="application">
<c:import url="txl.xml" charEncoding="GB2312" />
</x:parse>
<x:set var="name" select="$txl//name" />
<x:set var="linkman" select="$txl//linkman" />
示例代码执行后,变量name中保存的内容为“霸王丸”,而变量linkman中保存的内容如下:
<linkman id="1">
<name>霸王丸</name>
<sex>男</sex>
<birthday>1965-05-04</birthday>
<mobile>13112943800</mobile>
<phone>022-62590099</phone>
<email>babel@laser.com</email>
</linkman>
.2 var属性:指定变量名
【功能说明】var属性用于指定变量的名称,该变量从XML文档中取得内容,不可以接受动态值。
.3 scope属性:指定变量作用域
【功能说明】scope属性用于指定变量的作用域范围,如page、request、session和application等。scope属性不可以接受动态值。
【实例演示】
<%@ 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" %>
<x:parse var="txl" scope="application">
<c:import url="txl.xml" charEncoding="GB2312" />
</x:parse>
<x:set var="linkman" select="$txl//linkman" />
<table>
<tr>
<td align=right>姓 名:</td>
<td><x:out select="$linkman//name" /></td>
</tr>
<tr>
<td align=right>性 别:</td>
<td><x:out select="$linkman//sex" /></td>
</tr>
<tr>
<td align=right>生 日:</td>
<td><x:out select="$linkman//birthday" /></td>
</tr>
<tr>
<td align=right>移动电话:</td>
<td><x:out select="$linkman//mobile" /></td>
</tr>
<tr>
<td align=right>固定电话:</td>
<td><x:out select="$linkman//phone" /></td>
</tr>
<tr>
<td align=right>E-mail:</td>
<td><x:out select="$linkman//email" /></td>
</tr>
</table>
示例代码的执行效果如图9.5所示。

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