<x:out>动作类似于<%= … >指令,用于输出XPath表达式的计算结果。<x:out>动作的语法格式如下:
<x:out select="XPathExpression"
[escapeXml="true|false"] />
<x:out>动作共有两个属性,即select和escapeXml。
.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>
联系人(id=1):</br>
<x:out select="$txl//linkman" /></br></br>
联系人(id=3):</br>
<x:out select="$txl/linkmans/linkman[@id=3]" /></br>
示例代码的执行效果如图9.3所示。

图9.3 使用<x:out>动作的select属性
.2 escapeXml属性:是否转换XML字符
【功能说明】escapeXml属性如果为true,则结果字符串中的“<”、“>”、“&”、“’”和“””等字符将转换为相应的XML字符实体码,否则保持不变。escapeXml属性可以接受动态值。
【实例演示】
<%@ 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:out select="$txl//url" escapeXml="true" />
示例代码的执行效果如图9.4所示。

图9.4 使用<x:out>动作的escapeXml属性
查看源代码,可以看到url中的字符已转换成相应的XML字符实体码,源代码如下:
http://localhost:8080/txl/login.jsp?name=forrid&pass=1'3"5
如果将escapeXml属性设置为false,则查看源代码如下:
http://localhost:8080/txl/login.jsp?name=forrid&pass=1'3"5
相关高级JSP教程的学习,我将在以后陆续推出,敬请关注:http://www.itgao.com