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="&lt未使用字符转义&gt" /></li>
34         <%--5)使用了转义字符&lt和&gt分别转换成<>符号。 --%>
35         <li>(5)<c:out value="&lt使用字符转义&gt" 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>
View Code

相关文章: