首页 > 代码库 > JSTL

JSTL

 

JSTL标签库,在javaee4.0需要导入JSTL相关的jar包,在javaee5.0开始,默认已经包含了此jar包。还要需要用<%@ taglib%>指令引入标签库


3.1 介绍
  JavaServer Pages Standard Tag Library
由JCP(Java Community Process)指定标准
提供给 Java Web 开发人员一个标准通用的标签函数库
和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性
一般我们使用JSTL1.1以上的版本,应为从这个版本开始支持EL表达式
JSTL1.0默认不支持el表达式,不建议使用


3.2 JSTL标签库
  ****核心标签库 (core) --- c
  国际化标签 fmt
  数据库标签 sql --Servlet
  XML标签 xml
  JSTL函数(EL函数) el
3.3 JSTL核心标签库


<c:out> 标签用于输出一段文本内容到pageContext对象当前保存的“out”对象中。

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 5 <html>
 6   <head>
 7   </head>
 8   <body>
 9       <h1>HTML转义输出</h1><hr>
10       <a href="#">xxx</a>
11       <c:out value="<a href=http://www.mamicode.com/‘#‘>xxx" ></c:out>
12       ${fn:escapeXml(‘<a href="#">xxx</a>‘) }
13       
14       <h1>输出默认值</h1><hr>
15       <%
16           String addr = "西二旗";
17           //pageContext.setAttribute("addr",addr);
18        %>
19     <c:out value="${addr}" default="北京"></c:out>
20     ${addr == null?"北京" : addr }
21     
22       <h1>输出变量</h1><hr>
23       <%
24           String name = "无双";
25           pageContext.setAttribute("name",name);
26        %>
27        <c:out value="${name}"></c:out>
28        ${name }
29       <h1>输出常量</h1><hr>
30       <c:out value="阿斯蒂芬"></c:out>
31       ${"啦啦啦啦" }
32   </body>
33 </html>

 

<c:set>标签用于把某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map类型的属性对象或JavaBean类型的属性对象的 属性。

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%@page import="com.itheima.domain.Person"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 5 <html>
 6   <head>
 7   </head>
 8   <body>
 9       <h1>修改域中的JavaBean的属性的值</h1><hr>
10       <%
11           Person p = new Person();
12           pageContext.setAttribute("p",p);
13        %>
14        <c:set target="${p}" property="name" value="克林顿"></c:set>
15        ${p.name }
16       
17       
18       <h1>设置或修改域中的Map的值</h1><hr>
19       <%
20           Map map = new HashMap();
21           pageContext.setAttribute("map",map);
22        %>
23     <c:set target="${map}" property="cellphone" value="10010"></c:set>      
24     <c:set target="${map}" property="cellphone" value="10086"></c:set>      
25     ${map.cellphone }
26       
27       <h1>设置或修改域中的属性值</h1><hr>
28       <c:set var="name" value="韦小宝"></c:set>
29       <c:set var="name" value="阿珂"></c:set>
30       ${name }
31   </body>
32 </html>

 

<c:remove>标签用于删除各种Web域中的属性

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>
 6   </head>
 7   <body>
 8       <%
 9           pageContext.setAttribute("name","蓝精灵");
10           request.setAttribute("name","伏地魔");
11           session.setAttribute("name","机器猫");
12           application.setAttribute("name","蜡笔小新");
13        %>
14        <c:remove var="name"/>
15     ${name }
16   </body>
17 </html>

 


<c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:<c:catch [var="varName"]>nested actions</c:catch>

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>
 6   </head>
 7   <body>
 8   <c:catch var="e">
 9       <%
10           int i = 1/0;
11        %>
12    </c:catch>
13    
14    ${e.message }
15    
16   </body>
17 </html>

 


<c:if test=“”>标签可以构造简单的“if-then”结构的条件表达式
<c:choose>标签用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。
<c:forEach>标签用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容。
<c:forTokens>用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的
<c:param>标签 在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。
<c:import> 标签,实现include操作
<c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。URL重写就是将会话标识号以参数形式附加在URL地址后面
<c:redirect>标签用于实现请求重定向


 

JSTL