EL表达式可以直接将结果返回给页面,但有时得到的结果为空,<c:out>有特定的结果处理功能,把EL的结果输入放入<c:out>标签中可以增加程序的可读性。着重对 escapeXml="false"的理解。
格式是:
<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值</c:out> 或者
<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=” 默认值”]/>
<%@ page language="java" pageEncoding="UTF-8"%>
<%--引入JSTL核心标签库 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML>
<html>
<head>
<title>JSTL: --表达式控制标签“out”标签的使用</title>
</head>
<body>
<h3><c:out value="下面的代码演示了c:out的使用,以及在不同属性值状态下的结果。"/></h3>
<hr/>
<ul>
<%--(1)直接输出了一个字符串。 --%>
<li>(1)<c:out value="JSTL的out标签的使用" /></li>
<li>(2)<c:out value="<a href='http://www.163com/'>点击链接到163</a>" /></li>
<%--escapeXml="false"表示value值中的html标签不进行转义,而是直接输出 --%> <li>(3)<c:out value="<a href='http://www.163.com/'>点击链接到163</a>" escapeXml="false"/></li>
<%--(4)字符串中有转义字符,但在默认情况下没有转换。 --%>
<li>(4)<c:out value="<未使用字符转义>" /></li>
<%--(5)使用了转义字符<和>分别转换成<和>符号。 --%>
<li>(5)<c:out value="<使用字符转义>" escapeXml="false"></c:out></li>
<%--(6)设定了默认值,从EL表达式${null}得到空值,所以直接输出设定的默认值。 --%>
<li>(6)<c:out value="${2>1?1:2}">使用了默认值</c:out></li>
<%--(7)未设定默认值,输出结果为空。 --%>
<li>(7)<c:out value="${null}"></c:out></li>
<%--(8)设定了默认值,从EL表达式${null}得到空值,所以直接输出设定的默认值。 --%>
<li>(8)<c:out value="${null}" default="默认值"/></li>
<%--(9)未设定默认值,输出结果为空。 --%>
<li>(9)<c:out value="${null}"/></li>
</ul>
</body>
假如在lib文件下放入jstl.jar之后,<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>这句话还是报错,那就再把standard.jar导到lib文件夹下,就可以了。