• JSTL标签库


    一、JSTL标签库介绍

    • JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能
    • 意义:jstl出现的目的同el一样也是要替换jsp页面中的脚本代码

    二、标签库的使用步骤

    1. 导入jstl标签的两个jar包

      taglibs-standard-impl-1.2.1.jar

      taglibs-standard-spec-1.2.1.jar

    2. 使用taglib指令导入标签库

      下面是导入JSTL的core标签库:

      <%@ taglib prefix="c"uri="http://java.sun.com/jstl/core" %>

      1)prefix="c":指定标签库的前缀,这个前缀可以随便给值,但大家都会在使用core标签库时指定前缀为c;

      2)uri="http://java.sun.com/jstl/core":指定标签库的uri,它不一定是真实存在的网址,但它可以让JSP找到标签库的描述文件;

    三、常用标签

    set标签

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<!-- 
    	作用:set标签可以往域中保存数据
    	
    	域对象.setAttribute(key,value)
    	scope 属性设置保存到哪个域
    		page表示PageContext域(默认值)
    		request表示Request域
    		session表示Session域
    		application表示ServletContext域
    	var属性设置key是多少 
    	value属性设置值
    	 -->
    	 保存之前:${requestScope.abc }
    	 <c:set scope="request" var="abc" value="abcValue"></c:set>
    	 保存之后:${requestScope.abc }
    </body>
    </html>
    

    结果:

    保存之前:

    保存之后:abcValue

    if标签

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<!-- 
    		if标签用来做if判断
    		test属性表示判断的条件(使用EL表达式输出)
    
    		不存在if-else的写法,没有多路判断
    	 -->
    	 
    	 <c:if test="${12 == 12 }">
    	 	<h1>12等于12</h1>
    	 </c:if>
    	 
    	 <c:if test="${12 != 12 }">
    	 	<h1>12不等于12</h1>
    	 </c:if>
    </body>
    </html>
    

    结果:12 == 12

    choose、when、otherwise标签

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<!-- 
    		多路判断,跟switch...case...default非常接近
    		
    		choose标签开始选择判断
    		when标签表示每一种判断情况
    			test属性表示当前这种判断情况的值
    		otherwise标签表示剩下的情况
    		
    		choose、when、otherwise标签使用时需要注意的点:
    			1、标签里不能使用HTML注释,要使用JSP注释
    			2、when标签的父标签一定要是choose标签
    				otherwise里写多路判断时必须加上<choose/>标签
    	 -->
    	 
    	 <%
    	 	request.setAttribute("height", 168);
    	 %>
    	 
    	 <c:choose>
    	 	<c:when test="${requestScope.height > 190 }">
    	 		<h2>小巨人</h2>
    	 	</c:when>
    	 	<c:when test="${requestScope.height > 180 }">
    	 		<h2>很高</h2>
    	 	</c:when>
    	 	<c:when test="${requestScope.height > 170 }">
    	 		<h2>还可以</h2>
    	 	</c:when>
    	 	<c:otherwise>
    	 		<h2>剩下小于170的情况</h2>
    	 	</c:otherwise>
    	 </c:choose>
    </body>
    </html>
    

    结果:剩下小于170的情况

    四、forEach标签

    1、遍历1到10
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<!-- 
    		begin		设置开始的索引
    		end			设置结束的索引
    		var			表示循环的变量(也是当前正在遍历到的数据)
    		step		表示遍历的步长值
    		varstatus	表示当前遍历到的数据的状态
    	 -->
    	<c:forEach begin="1" end="10" var="i">
    		${i }
    	</c:forEach>
    </body>
    </html>
    

    结果:1 2 3 4 5 6 7 8 9 10

    2、遍历object数组
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    
    	<!-- 
    		for(Object item : arr)
    		items	表示遍历的数据源(遍历的集合)
    		var		表示当前遍历到的数据
    	 -->
    	 
    	<%
    		request.setAttribute("arr", new String[]{"17377791234","15526431237","17355790713"});
    	%>
    
    	<c:forEach items="${requestScope.arr }" var="item">
    		${item }
    	</c:forEach>
    </body>
    </html>
    

    结果:

    17377791234 15526431237 17355790713

    3、遍历Map集合
    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.Map"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    
    	<!-- 
    	java语句输出:
    	for(Map.Entry<String,Object> entry : map.entrySet()){
    	}
    	 -->
    
    	<%
    		Map<String,Object> map = new HashMap<String,Object>();
    		map.put("key1","value1");
    		map.put("key2","value2");
    		map.put("key3","value3");
    		request.setAttribute("map", map);
    	%>
    	
    	<c:forEach items="${requestScope.map }" var="entry">
    		${entry }
    	</c:forEach>
    </body>
    </html>
    

    结果:key1=value1 key2=value2 key3=value3

    4、遍历list集合
    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.List"%>
    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.Map"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<%
    	List<String> list = new ArrayList<String>();
    	list.add("zhangsan");
    	list.add("lisi");
    	list.add("wangwu");
    	request.setAttribute("list", list);
    	%>
    	
    	<c:forEach items="${requestScope.list }" var="list">
    		${list }
    	</c:forEach>
    </body>
    </html>
    

    结果:zhangsan lisi wangwu

  • 相关阅读:
    跨域访问方法列举 jsonp 和 客户端
    session 垃圾回收机制
    php 根据数据权重,得分或者持有数量等进行均衡分配给定数量分配方法
    进程和线程比较
    redis 过期策略分析
    redis 基础知识详解
    tcp/ip 协议
    ip 协议详解
    php redis 分布式类
    nginx打开目录游览功能
  • 原文地址:https://www.cnblogs.com/stublog/p/14141657.html
Copyright © 2020-2023  润新知