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

本文查阅方法:
    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标签库 知识详解 学习笔记_第1张图片
 

 

   

 

 

  

 

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

 

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

 

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

 

 
JSP标签 —— JSTL标签库 知识详解 学习笔记_第2张图片
 

 

 

 

 

 

 

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标签库 知识详解 学习笔记_第3张图片
 

 

 

 

 

  

 

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标签库 知识详解 学习笔记_第4张图片
 

 

 

 

 

 

 

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标签库 知识详解 学习笔记_第5张图片
 

 

    

 

    此外,还可添加<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标签库 知识详解 学习笔记_第6张图片
 

 

  

 

 

 

 

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

 

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

 

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

 


JSP标签 —— JSTL标签库 知识详解 学习笔记_第7张图片
 

 

  

 

 

 

 

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,url重写,Java三大标签)