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

JSP标签 —— JSTL标签库 知识详解 学习笔记

程序员文章站 2022-04-21 10:32:39
...

本文查阅方法:
    1、查阅目录 —— 查阅本文目录,确定想要查阅的目录标题
    2、快捷“查找” —— 在当前浏览器页面,按键 “Ctrl+F” 按键组合,开启浏览器的查找功能,
             在查找搜索框中 输入需要查阅的 目录标题,便可以直接到达 标题内容 的位置。
    3、学习小结 —— 文中的学习小结内容,是笔者在学习之后总结出的,开发时可直接参考其进行应用开发的内容, 进一步加快了本文的查阅 速度。(水平有限,仅供参考。)

 

 

 


 

本文目录

 

 

 

  学习小结

 

  1、JSTL标签库 的五个子标签库 

 

  2、JSTL标签库-- <c:out>标签

 

  3、JSTL标签库-- <c:set>标签 

 

  4、JSTL标签库-- <c:remove>标签  

 

  5、JSTL标签库-- <c:catch>标签 

 

  6、JSTL标签库-- <c:if>标签

 

  7、JSTL标签库-- <c:choose>标签 

 

  8、JSTL标签库-- <c:forEach>标签

 

  9、JSTL标签库-- <c:param>标签 

 

  10、JSTL标签库-- <c:url>标签 【重点学习】

 

  11、JSTL标签库-- <c:redirect>标签

 

  12、JSTL标签库-- <c:forTokens>标签

 

  13、JSTL标签库综合 Demo样例

 

  

 

 

 


 

 

 

  学习小结

 

  (1)<c:out>标签

 

      <c:out value="" [escapeXml="true" default="default value"]/>  

 

 

 

  (2)<c:set>标签 

 

      <c:set value="" {var="" scope="session" | target="对象/map名称" property="属性名/键值" }/> 

 

 

 

  (3)<c:remove>标签 

 

      <c:remove var="varName" [scope="{page|request|session|application}"] /> 

 

 

 

  (4)<c:catch>标签 

 

      <c:catch [var="varName"]>nested actions</c:catch>

 

 

 

  (5)<c:if>标签

 

      <c:if test="" [ var="varName" scope="{page|request|session|application}"] />  

 

 

 

  (6)<c:choose>标签 

 

      <c:choose>

 

        <c:when test="${count == 0}">

 

          对不起,没有符合您要求的记录。

 

        </c:when>

 

        <c:otherwise>

 

          符合您要求的记录共有${count}条.

 

        </c:otherwise>

 

      </c:choose> 

 

 

 

  (7)<c:forEach>标签

 

  ​    <c:forEach  var=""  items="" [ varstatus=""  begin=""  end=""  step="" ]>  </c:forEach>

 

 

 

  (8)<c:param>标签 

 

      <c:param name="name" value="value" />

 

 

 

  (9)<c:url>标签 【重点学习】

 

      <c:url var="index" value="/index.jsp">

 

        <c:param name="name" value="中国"></c:param>

 

      </c:url>   

 

      <a href='${index }'>点点</a>

 

      生成的html源码:<a href='/day11/index.jsp?name=%e4%b8%ad%e5%9b%bd'>点点</a>

 

 

 

  (10)<c:redirect>标签

 

      ​<c:redirect url="目标URL地址" [context="其他Web应用的名称"] />

 

 

 

  (11)<c:forTokens>标签

 

      <c:forTokens items="要分隔的字符串" delims="分隔符" var="分隔出的每份字符串临时变量名"  scope=""指定域 >    </c:forTokens>

 

 

 

 

 


 

 

 

 

 

1、JSTL标签库 的五个子标签库 

 

    (1) 核心标签库 

 

    (2) 国际化标签

 

    (3) 数据库标签 (有违分层开发原则,本文不做讲解)

 

    (4) XML标签(有违分层开发原则,本文不做讲解 ) 

 

    (5) JSTL函数(EL函数)

 

 

 


 

 

 

2、JSTL标签库-- <c:out>标签

 

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

 

    <c:out value="" [escapeXml="true" default="default value"]/>   

 


JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

   

 


 

  

 

3、JSTL标签库-- <c:set>标签 

 

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

 

    <c:set value="" {var="" scope="session" | target="对象/map名称" property="属性名/键值" }/> 

 

 
JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

 

 


 

 

 

4、JSTL标签库-- <c:remove>标签  

 

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

 

    其语法格式如下: 

 

          <c:remove var="varName" [scope="{page|request|session|application}"] /> 

 

 

 


 

 

 

5、JSTL标签库-- <c:catch>标签 

 

    <c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:

 

        <c:catch [var="varName"]>nested actions</c:catch>

 

    var属性用于标识<c:catch>标签捕获的异常对象,它将保存在page这个Web域中。 

 

     Demo样例:

 

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

 

    <%@ page contentType="text/html;charset=gb2312" %>

 

    <c:catch var="myex“ scope=“page”>

 

      <%

 

        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}" />

 

      

 


 

 

 

6、JSTL标签库-- <c:if>标签

 

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

 

     <c:if test="" [ var="varName" scope="{page|request|session|application}"] />  

 

 
JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

 

 


 

  

 

7、JSTL标签库-- <c:choose>标签  

 

    <c:choose>标签用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。相对于多个<c:if test=""></c:if> 标签的组合应用,可以提升效率:有一个符合条件,其他的就不再判断。

 

    Demo样例:

 

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

 

    <%@ page contentType="text/html;charset=gb2312" %>

 

    <c:set value="${param.count}" var="count“  /> pageContext(count,2)

 

    <c:choose>

 

      <c:when test="${count == 0}">

 

        对不起,没有符合您要求的记录。

 

      </c:when>

 

      <c:otherwise>

 

        符合您要求的记录共有${count}条.

 

      </c:otherwise>

 

    </c:choose> 

 

 

 


 

 

 

8、JSTL标签库-- <c:forEach>标签

 

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

 

    <c:forEach  var=""  items="" [ varstatus=""  begin=""  end=""  step="" ]>  </c:forEach>

 


JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

 

 


 

 

 

9、JSTL标签库-- <c:param>标签 

 

    在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。

 

    <c:param>标签在为一个URL地址附加参数时,将自动对参数值进行URL编码,例如,如果传递的参数值为“中国”,则将其转换为“%d6%d0%b9%fa”后再附加到URL地址后面,这也就是使用<c:param>标签的最大好处。      

 

    示例:<c:param name="name" value="value" />

 

     

 


 

 

 

10、JSTL标签库-- <c:url>标签 【重点学习】

 

    <c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。URL重写就是将会话标识号以参数形式附加在URL地址后面 。

 


JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

    

 

    此外,还可添加<c:param /> 为URL地址 添加参数,若是中文参数值,还会自动 进行URL编码。

 

    Demo: <c:url var="index" value="/index.jsp">

 

         <c:param name="name" value="中国"></c:param>

 

                  </c:url>   

 

                  <a href='${index }'>点点</a>

 

    生成的html源码:<a href='/day11/index.jsp?name=%e4%b8%ad%e5%9b%bd'>点点</a>

 

  

 


 

 

 

11、JSTL标签库-- <c:redirect>标签

 

    <c:redirect>标签用于实现请求重定向

 

    <c:redirect url="目标URL地址" [context="其他Web应用的名称"] />

 


JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

  

 


 

 

 

12、JSTL标签库-- <c:forTokens>标签

 

    <c:forTokens>标签用于实现字符串的分隔 

 

<c:forTokens items="要分隔的字符串" delims="分隔符" var="分隔出的每份字符串临时变量名"  scope=""指定域 >  </c:forToke

 


JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
 

 

  

 


 

 

 

13、JSTL标签库综合 Demo样例

 

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

    <%@page import="cn.itcast.domain.Person"%>

 

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

 

     

 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

 

       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 

      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

 

     

 

      <head>

 

        <title>测试jstl</title>

 

      </head>

 

     

 

      <body> 

 

        <br/>-------------------c:out---------------------------<br/>

 

        <% 

 

          request.setAttribute("data","bbbb");

 

        %>

 

        <c:out value="${data}" default="aaaaa" escapeXml="true"></c:out>

 

     

 

         <br/>-------------------c:set可以操给各个域 javabean Map集合---------------------------<br/>

 

         <c:set var="data" value="xxx" scope="page"/>

 

         ${data }

 

     

 

       <% 

 

           Map map = new HashMap();

 

           request.setAttribute("map",map);

 

       %>

 

       <c:set property="dd" value="xxx" target="${map}"/>

 

       ${map.dd }

 

     

 

       <% 

 

         Person p = new Person();

 

         request.setAttribute("p",p);

 

       %>

 

       <c:set property="name" value="uuuu" target="${p}"/>

 

       ${p.name } 

 

     

 

       <br/>-------------------c:catch---------------------------<br/>

 

       <c:catch var="myex">

 

         <% 

 

           int x = 1/0;

 

         %>

 

       </c:catch>

 

     

 

       ${myex.message}

 

     

 

       <br/>-------------------c:if---------------------------<br/>

 

     

 

       <c:if var="aaa" test="${user==null}" scope="page">

 

         aaaa

 

       </c:if>

 

       ${aaa }

 

     

 

       <br/>-------------------c:foreach---------------------------<br/>

 

        <% 

 

          List list = new ArrayList();

 

          list.add("aaa");

 

          list.add("bbb");

 

          list.add("ccc");

 

          list.add("dddd");

 

          request.setAttribute("list",list);

 

        %>

 

        <c:forEach var="str" items="${list}">

 

          ${str }

 

        </c:forEach>

 

     

 

       <br/>

 

       <c:forEach var="num" begin="1" end="9" step="1">

 

           ${num }

 

       </c:forEach>

 

     

 

       <br/>-------------------c:foreach实现表格间色显示---------------------------<br/>

 

     

 

       <% 

 

          list = new ArrayList();

 

          list.add("aaa");

 

          list.add("bbb");

 

          list.add("ccc");

 

          list.add("dddd");

 

          list.add("eeee");

 

          list.add("ffff");

 

          list.add("gggg");

 

          list.add("hhhh");

 

          list.add("kkkkk");

 

          request.setAttribute("list",list);

 

        %>

 

         <%--${status }获取到了一个对象,这个对象记住了当前是第几次迭代 --%>

 

     

 

        <style>

 

          .odd{background-color: #FF99FF;}

 

          .even{background-color: #FF6633;}

 

          tr:hover{background-color: #0000FF;}

 

        </style>

 

     

 

        <table border="1" width="20%">

 

          <c:forEach var="str" items="${list}" varStatus="status">

 

            <tr class="${status.count%2==0?'even':'odd' }">     

 

              <td>${str }</td>

 

            </tr>

 

          </c:forEach>

 

        </table>

 

     

 

       <br/>-------------------c:url标签---------------------------<br/>

 

     

 

     

 

       <c:url var="index" value="/index.jsp">

 

           <c:param name="name" value="中国"></c:param>

 

       </c:url>

 

     

 

       <a href='${index }'>点点</a>

 

     

 

       <br/>-------------------c:url标签---------------------------<br/>

 

     

 

       <% 

 

         pageContext.setAttribute("data","aa,bb,cc,dd");

 

       %>

 

     

 

       <c:forTokens var="ss" items="${data}" delims=",">

 

           ${ss }

 

       </c:forTokens>

 

     

 

      </body>

 

    </html>     

 

     

 

 

 


 

 

 敬请评论

(1)若您觉得本文 有用处  —— 请留言评论,以坚定其他 IT童鞋 阅读本文的信心。

(2)若您觉得本文 没用处  —— 请留言评论,笔者将会改进不足,以便为大家整理更加好用的笔记。

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 94.6 KB
  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 69.4 KB
  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 74.8 KB
  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 62.3 KB
  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 67.3 KB
  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 82.7 KB
  • JSP标签 —— JSTL标签库 知识详解  学习笔记
            
    
    博客分类: 学习笔记 JSPJSTLJava三大标签URL重写 
  • 大小: 54.8 KB