zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数组的方法 Array.map();Array.every()和Array.some();数组的indexof();检测是否是数组isArray(obj);
    jsonp的三种跨域方式
    Python函数的参数
    Python 函数
    collection 类
    字符串,列表,元组,字典基本函数
    图像处理------图像加噪 分类: 视频图像处理 2015-07-24 09:26 24人阅读 评论(0) 收藏
    图像处理------理解卷积 分类: 视频图像处理 2015-07-24 09:25 24人阅读 评论(0) 收藏
    图像处理------颜色梯度变化 (Color Gradient) 分类: 视频图像处理 2015-07-24 09:23 27人阅读 评论(0) 收藏
    图像处理------噪声之美
  • 原文地址:https://www.cnblogs.com/stublog/p/14141657.html
Copyright © 2011-2022 走看看