JSTL核心标签库

一. JSTL标签

1. 简介

JSTL(全名:java  standard  tag  libarary - java标准标签库);

2. 五套标签库(重点是前三套)

(1) 核心标签库 (c标签库) 

(2) 国际化标签(fmt标签库)

(3) EL函数库(fn函数库)

(4) xml标签库(x标签库)

(5) sql标签库(sql标签库)

3. 使用JSTL标签步骤

(1) 导入jstl支持的jar包(标签背后隐藏的java代码)

注意:使用javaee5.0的项目自动导入jstl支持jar包

(2) 使用taglib指令导入标签库 

<%@taglib uri="核心标签库的tld文件的uri名称" prefix="标签库的简写或者前缀" %>

注意:每一个核心标签库都有一个tld文件,tld文件在这个jar包的META-INF中,tld文件就是声明标签用的,在

文件中找到uri复制粘贴即可。使用这个uri就可以定位到这个标签库。前缀也是在这个文件中去找,在这个文件中

有一个<short-name></short-name>标签,中间的值就是简写。

(3) 在jsp中使用标签

二. 核心标签库的重点标签

1. 保存数据:<c:set></c:set> 

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

JavaBean类型的属性对象的属性。

(2) 标签属性


(3) 实例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--导入标签库 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心标签库</title>  
  </head>
  
  <body>
    <%--使用标签 --%>
    <%--set标签 :保存数据(保存到域中)默认保存到page域 --%>
    <c:set var="name" value="rose" scope="request"></c:set>
    ${requestScope.name} 
  </body>
</html>

运行结果如下图所示:


2. 获取数据:<c:out value=""></c:out>

(1) <c:out> 标签用于输出一段文本到浏览器中。

(2) 标签属性


(3) 实例


3. 单条件判断<c:if test=""></c:if>

(1) <c:if test=“”>标签可以构造简单的“if-then”结构的条件表达式。

(2) 标签属性

  

(3) 实例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--导入标签库 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心标签库</title>  
  </head>
  
  <body>
    <%
    	String msg = null;
    	pageContext.setAttribute("msg",msg);
     %>
    <%--if标签 :单条件判断,test返回的是布尔值,如果返回值为true,标签体的内容就会输出--%>
    <%-- 
    	<c:if test="true">
    		条件成立
    	</c:if>
    --%>
    
    <c:if test="${!empty msg}">
    	条件成立
    </c:if>
  </body>
</html>

4. 多条件判断<c:choose></c:choose>

(1) <c:choose>标签用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。

使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结

构。

(2) 实例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--导入标签库 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心标签库</title>  
  </head>
  
  <body>

    <%--choose标签+when标签+otherwirse标签: 多条件判断 --%>
    <c:set var="score" value="56"></c:set>
    
    <c:choose>
    	<c:when test="${score>=90 && score<=100}">
    		优秀
    	</c:when>
    	<c:when test="${score>=80 && score<90}">
    		良好
    	</c:when>
    	<c:when test="${score>=70 && score<80}">
    		一般
    	</c:when>
    	<c:when test="${score>=60 && score<70}">
    		及格
    	</c:when>
    	<c:otherwise>
    		不及格
    	</c:otherwise>
    </c:choose>
    
  </body>
</html>

运行结果如下图所示:


5. 循环数据<c:forEach></c:forEach>

(1) <c:forEach>标签用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中

的内容。 

(2) 标签属性


(3) 实例

<%@ page language="java" import="java.util.*,zw_entity.*" pageEncoding="utf-8"%>
<%--导入标签库 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心标签库</title>  
  </head>
  
  <body>
    
    <%-- forEach标签:循环 --%>
    <%
    	//List
     	List<Student>  list = new ArrayList<Student>();
     	list.add(new Student("rose",18));
     	list.add(new Student("jack",28));
     	list.add(new Student("lucy",38));
     	//放入域中
     	pageContext.setAttribute("list",list);
     	
     	//Map
     	Map<String,Student> map = new HashMap<String,Student>();
     	map.put("100",new Student("mark",20));
     	map.put("101",new Student("maxwell",30));
     	map.put("102",new Student("narci",40));
     	//放入域中
     	pageContext.setAttribute("map",map);
     %>
     <hr/>
     <%--
      begin="" : 从哪个元素开始遍历,默认从0开始
      end="":     到哪个元素结束。默认到最后一个元素
      step="" : 步长    (每次加几)  ,默认1
      items="": 需要遍历的数据(集合) 
      var="": 每个元素的名称 ,需要使用名称去访问它,相当于起别名。
      varStatus="": 当前正在遍历元素的状态对象。(count属性:当前位置,从1开始)
      
     --%>
    <c:forEach items="${list}" var="student" varStatus="varSta">
    	序号:${varSta.count} - 姓名:${student.name } - 年龄:${student.age}<br/>
    </c:forEach>
    
    <hr/>
    
    <c:forEach items="${map}" var="entry">
    	${entry.key } - 姓名: ${entry.value.name } - 年龄:${entry.value.age }<br/>
    </c:forEach>
  </body>
</html>

运行结果如下图所示:


6. 循环特殊字符串<c:forTokens items="" delims=""></c:forTokens>

(1) 对带有相同符合格式内容进行分割输出,例如varstr="1,2,3,4,5,6";

(2) 标签属性


(3) 实例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--导入标签库 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心标签库</title>  
  </head>
  
  <body>
    
    <%-- forToken标签: 循环特殊字符串 --%>
    <%
    	String str = "java-php-net-平面";
    	pageContext.setAttribute("str",str);
     %>
    
    <c:forTokens items="${str}" delims="-" var="s">
    	${s }<br/>
    </c:forTokens>
    
  </body>
</html>

运行结果如下图所示:


7. 重定向<c:redirect></c:redirect>

(1) <c:redirect>标签用于将当前的访问请求转发或重定向到其他资源,它可以根据url属性所指定的地址,执行

类似<jsp:forward>这个JSP标准标签的功能,将访问请求转发到其他资源;或执行response.sendRedirect()方

法的功能,将访问请求重定向到其他资源。 

(2) 标签属性


(3) 实例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--导入标签库 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心标签库</title>  
  </head>
  
  <body>
 
    <%--redirect:重定向,重定向可以指向任何地址--%>
    <c:redirect url="http://www.baidu.com"></c:redirect>
    
  </body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

处女座的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值