欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

17、JSTL标签库

程序员文章站 2022-07-12 14:30:23
...

一、JSTL 简介

 

  1. JSTL:JavaServer Pages Standard Tag Library
  2. 由JCP(Java Community Process)指定标准,提供给 Java Web 开发人员一个标准通用的标签函数库
  3. 和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性

二、JSTL1.1安装

 

  1. JSTL 主要由Apache组织的Jakarta Project 实现
  2. 下载地址:http://tomcat.apache.org/taglibs/standard/
  3. 容器必须支持Servlet 2.4 且JSP 2.0 以上版本
  4. JavaEE1.4 
  5. 解压缩后将lib 中的jstl.jar、standard.jar 复制到WEB应用程序的WEB-INF\lib 下

三、JSTL标签库

 

  1. 核心标签库 (core)  --- c
  2. 国际化标签 fmt
  3. 数据库标签 sql --Servlet
  4. XML标签  xml
  5. JSTL函数(EL函数) el

四、核心标签库

 

  1. <c:out>标签:用于输出一段文本内容到pageContext对象当前保存的“out”对象中
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
     
    c:out 输出内容到浏览器端
    	输出固定值
    	<c:out value="Hello c out~"/>
    
    	输出变量
    	<c:out value="${m}"/>
    
    	转义html,默认为转义,可以设置escapeXml属性为false,禁止转义
    	<c:out value="<a href='#'>link</a>" escapeXml="false"/>
    
    	允许输出默认值,如果给定值不存在,输出默认值
    	<c:out value="${city}" default="北京"/>
    
     
  2. <c:set>标签:用于把某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性。
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
     
    c:set 设置值到四个域,设置四个范围中的java对象的属性、在指定域中增加、修改属性
    	<c:set var="name" value="value" scope="page"/>
    
    设置一个保存在四个范围的java对象的属性值,cset不能设置对象进域,但是可以更改域中对象的属性
    	<c:set targe="${person}" property="name" value="lisi"/>	
    
     
  3. <c:remove>标签:用于删除各种Web域中的属性
    其语法格式如下:
    
    <c:remove var="varName" 	
    	[scope="{page|request|session|application}"] /> 
     
    c:remove用来删除四个域中的值
    	<c:remove var="age" scope="page"/>
     
  4. <c:catch>标签:用于捕获嵌套在标签体中的内容抛出的异常
    语法格式如下:
          <c:catch [var="varName"]>nested actions</c:catch>
    
    var属性用于标识<c:catch>标签捕获的异常对象,它将保存在page这个Web域中。 
     
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=gb2312" %>
    <c:catch var="myex“ >
    	<%
    		10/0;
    	%>
    </c:catch>
    异常:<c:out value="${myex}" />  ${myex}<br />
    异常 myex.getMessage:<c:out value="${myex.message}" /><br />
    异常 myex.getCause:<c:out value="${myex.cause}" /><br />
    异常 myex.getStackTrace:<c:out value="${myex.stackTrace}" />
     
    <c:catch var="e">
    	<%
    		String s = null;
    		s.charAt(1);
    	%>
    </c:catch>
    ${e.message}
    
     
  5. <c:if>标签:可以构造简单的“if-then”结构的条件表达式
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    c:if 用来取代页面中if语句,请记住,没有c:else,想要写else,只能再写个c:if,然后条件是反的
    <c:if test="${n>5}"></c:if>
     
  6. <c:choose>标签:用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=gb2312" %>
    <c:set value="${param.count}" var="count"  />
    <c:choose>
    	<c:when test="${count == 0}">
    		对不起,没有符合您要求的记录。
    	</c:when>
    	<c:otherwise>
    		符合您要求的记录共有${count}条.
    	</c:otherwise>
    </c:choose>
     
     
    c:choose c:when c:otherwise 一起使用,取代if elseif else 或 swich case
    		<c:choose>
    			<c:when test="${weekday==1}">
    				星期一
    			</c:when>
    			<c:when test="${weekday==1}">
    				星期二
    			</c:when>
    			<c:when test="${weekday==1}">
    				星期三
    			</c:when>
    			<c:otherwise>
    				输入无效
    			</c:otherwise>
    		</c:choose>
    
     
  7. <c:forEach>标签:用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容。
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    <%
    	int atts[] = {1,2,3,4,5,6,7,8,9,10};
    	request.setAttribute("atts", atts);
    %>
    
    <c:forEach items="${atts}" var="item" begin="0" end="9" step="1" >
    	${item}</br>
    </c:forEach>
     
  8. varStatus属性:用来存放现在指到之成员的相关信息
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    <c:forEach begin="10" end="100" step="2" var="i"varStatus="status">
    			<c:if test="${status.count}%3 == 0">
    				<font color="red">${i}</font>
    			</c:if>
    			<c:if test="${status.count}%3 != 0">
    				<font color="blue">${i}</font>
    			</c:if>
    		</c:forEach>
    -------------------------------------------------------------------------------------------------
    
    
    <c:forEach var="i" begin="100" end="200" step="5" varStatus="status"> 
    	<c:if test="${status.first}"> 
    		begin:<c:out value="${status.begin}">begin</c:out>     
    		end:<c:out value="${status.end}">end</c:out>     
    		step:<c:out value="${status.step}">step</c:out>
    		<br/> 
    		sequence: 
    	</c:if>
    	<c:out value="${i}"/> 
    	<c:if test="${status.last}"> 
    		<br/>There are 
    		<c:out value="${status.count}"/> numbers in the list. 
    	</c:if> 
    </c:forEach> 
    ----------------------------------------------------------------------------------------------
    <%
    Map<String,String> map = new HashMap<String,String>();
    map.put("001","aaa");
    map.put("002","bbb");
    map.put("003","ccc");
    request.setAttribute("map",map);
    %>
    <c:forEach var="m" items="${requestScope.map}">
    		${m.key } , ${m.value } <br/>
    </c:forEach>
    
     
  9. <c:forTokens>:用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    c:forTokens 切割字符串(复习 StiringTokenize类)
    		<c:forTokens items="${s}" delims="," var="e">
    			${e}
    		</c:forTokens>
    
     
  10. <c:param>标签 :在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数
  11. <c:param>标签在为一个URL地址附加参数时,将自动对参数值进行URL编码,例如,如果传递的参数值为“中国”,则将其转换为“%d6%d0%b9%fa”后再附加到URL地址后面,这也就是使用<c:param>标签的最大好处
  12. 示例:<c:param name="name" value="value" />
  13. <c:import> 标签:
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    引入1.jsp的输出,拼接到当前jsp的输出中
    <c:import url="/1.jsp" context="/day08"/>
    
    引入1.jsp的输出,保存到scope域中以var指定名为名称的属性中
    <c:improt url="/1.jsp" context="/day08" var="content" scope="page"/>
    
     
  14. <c:url>标签:用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。URL重写就是将会话标识号以参数形式附加在URL地址后面 
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    <c:url value="/index.jsp"context="/day04" var="myurl2"scope="page">
    
    <c:param name="username" value="张三"></c:param>
    
    </c:url>
    
     
  15. <c:redirect>标签:用于实现请求重定向
    17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
    <c:redirect url="/index.jsp" context="/day08"/>
     
     
     
     
     
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 34.5 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 45.4 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 31.8 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 40.1 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 17.5 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 67.2 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 59.4 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 23 KB
  • 17、JSTL标签库
            
    
    博客分类: JAVAEE基础  
  • 大小: 27.5 KB