JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码
2 JSTL标签库分类
- 核心标签(用得最多)
- 国际化标签(I18N格式化标签)
- 数据库标签(SQL标签,很少使用)
- XML标签(几乎不用)
- JSTL函数(EL函数)
3 核心标签库使用
JSTL的核心标签库标签共13个,使用这些标签能够完成JSP页面的基本功能,减少编码工作。
从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
(1)表达式控制标签
out标签、set标签、remove标签、catch标签。
(2)流程控制标签
if标签、choose标签、when标签、otherwise标签。
(3)循环标签
forEach标签、forTokens标签。
(4)URL操作标签
import标签、url标签、redirect标签、param标签。
在JSP页面引入核心标签库的代码为: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3.1 表达式控制标签:out
3.1.1 out标签功能
<c:out>标签主要是用来输出数据对象(字符串、表达式)的内容或结果。
在使用Java脚本输出时常使用的方式为: <% out.println(“字符串”)%> 或 <%=表达式%> ,在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用<c:out>标签就可以实现以上功能。 <c:out value=”字符串”> <c:out value=”EL表达式”> JSTL的使用是和EL表达式分不开的,EL表达式虽然可以直接将结果返回给页面,但有时得到的结果为空,<c:out>有特定的结果处理功能,EL的单独使用会降低程序的易读性,建议把EL的结果输入放入<c:out>标签中。
3.1.2 out标签语法
<c:out>标签的语法格式:
<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]/>
或
<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值</c:out>
escapeXml默认为true,表示将value文本不解析原样输出
value为null时显示默认值
3.1.3 out标签使用示例
1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <%--引入JSTL核心标签库 --%> 3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4 <!DOCTYPE HTML> 5 <html> 6 <head> 7 <title>JSTL: --表达式控制标签“out”标签的使用</title> 8 </head> 9 <%-- <c:out>标签的使用有两种语法格式: 10 【语法1】:<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]/> 11 【语法2】:<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值</c:out> 12 escapeXml默认为true,表示将value文本不解析原样输出 13 value为null时显示默认值 14 --%> 15 <body> 16 <h3> 17 <c:out value="下面的代码演示了c:out的使用,以及在不同属性值状态下的结果。" /> 18 </h3> 19 <hr /> 20 <ul> 21 <%--(1)直接输出了一个字符串。 --%> 22 <li>(1)<c:out value="JSTL的out标签的使用" /></li> 23 24 <li>(2)<c:out 25 value="<a href='http://www.cnblogs.com/'>点击链接到博客园</a>" /> 26 </li> 27 <%--escapeXml="false"表示value值中的html标签不进行转义,而是直接输出 --%> 28 <li>(3)<c:out 29 value="<a href='http://www.cnblogs.com/'>点击链接到博客园</a>" 30 escapeXml="false" /></li> 31 32 <%--(4)字符串中有转义字符,但在默认情况下没有转换。 --%> 33 <li>(4)<c:out value="<未使用字符转义>" /></li> 34 <%--(5)使用了转义字符<和>分别转换成<和>符号。 --%> 35 <li>(5)<c:out value="<使用字符转义>" escapeXml="false"></c:out></li> 36 37 <%--(6)设定了默认值,从EL表达式${null}得到空值,所以直接输出设定的默认值。 --%> 38 <li>(6)<c:out value="${null}">使用了默认值</c:out></li> 39 <%--(7)未设定默认值,输出结果为空。 --%> 40 <li>(7)<c:out value="${null}"></c:out></li> 41 42 <%--(8)设定了默认值,从EL表达式${null}得到空值,所以直接输出设定的默认值。 --%> 43 <li>(8)<c:out value="${null}" default="默认值" /></li> 44 <%--(9)未设定默认值,输出结果为空。 --%> 45 <li>(9)<c:out value="${null}" /></li> 46 </ul> 47 </body> 48 </html>