• JSTL


    JSTL标签库,在javaee4.0需要导入JSTL相关的jar包,在javaee5.0开始,默认已经包含了此jar包。还要需要用<%@ taglib%>指令引入标签库


    3.1 介绍
      JavaServer Pages Standard Tag Library
    由JCP(Java Community Process)指定标准
    提供给 Java Web 开发人员一个标准通用的标签函数库
    和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性
    一般我们使用JSTL1.1以上的版本,应为从这个版本开始支持EL表达式
    JSTL1.0默认不支持el表达式,不建议使用


    3.2 JSTL标签库
      ****核心标签库 (core) --- c
      国际化标签 fmt
      数据库标签 sql --Servlet
      XML标签 xml
      JSTL函数(EL函数) el
    3.3 JSTL核心标签库


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

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
     4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     5 <html>
     6   <head>
     7   </head>
     8   <body>
     9       <h1>HTML转义输出</h1><hr>
    10       <a href="#">xxx</a>
    11       <c:out value="<a href='#'>xxx</a>" ></c:out>
    12       ${fn:escapeXml('<a href="#">xxx</a>') }
    13       
    14       <h1>输出默认值</h1><hr>
    15       <%
    16           String addr = "西二旗";
    17           //pageContext.setAttribute("addr",addr);
    18        %>
    19     <c:out value="${addr}" default="北京"></c:out>
    20     ${addr == null?"北京" : addr }
    21     
    22       <h1>输出变量</h1><hr>
    23       <%
    24           String name = "无双";
    25           pageContext.setAttribute("name",name);
    26        %>
    27        <c:out value="${name}"></c:out>
    28        ${name }
    29       <h1>输出常量</h1><hr>
    30       <c:out value="阿斯蒂芬"></c:out>
    31       ${"啦啦啦啦" }
    32   </body>
    33 </html>

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

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@page import="com.itheima.domain.Person"%>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     5 <html>
     6   <head>
     7   </head>
     8   <body>
     9       <h1>修改域中的JavaBean的属性的值</h1><hr>
    10       <%
    11           Person p = new Person();
    12           pageContext.setAttribute("p",p);
    13        %>
    14        <c:set target="${p}" property="name" value="克林顿"></c:set>
    15        ${p.name }
    16       
    17       
    18       <h1>设置或修改域中的Map的值</h1><hr>
    19       <%
    20           Map map = new HashMap();
    21           pageContext.setAttribute("map",map);
    22        %>
    23     <c:set target="${map}" property="cellphone" value="10010"></c:set>      
    24     <c:set target="${map}" property="cellphone" value="10086"></c:set>      
    25     ${map.cellphone }
    26       
    27       <h1>设置或修改域中的属性值</h1><hr>
    28       <c:set var="name" value="韦小宝"></c:set>
    29       <c:set var="name" value="阿珂"></c:set>
    30       ${name }
    31   </body>
    32 </html>

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

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6   </head>
     7   <body>
     8       <%
     9           pageContext.setAttribute("name","蓝精灵");
    10           request.setAttribute("name","伏地魔");
    11           session.setAttribute("name","机器猫");
    12           application.setAttribute("name","蜡笔小新");
    13        %>
    14        <c:remove var="name"/>
    15     ${name }
    16   </body>
    17 </html>


    <c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:<c:catch [var="varName"]>nested actions</c:catch>

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6   </head>
     7   <body>
     8   <c:catch var="e">
     9       <%
    10           int i = 1/0;
    11        %>
    12    </c:catch>
    13    
    14    ${e.message }
    15    
    16   </body>
    17 </html>


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

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6   </head>
     7   <body>
     8       <c:if test="${2>1}">
     9           确实是这样的....
    10       </c:if>
    11       <c:if test="${2<=1}">
    12         你确定吗?
    13       </c:if>
    14   </body>
    15 </html>

    <c:choose>标签用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6   </head>
     7   <body>
     8   <%
     9       int day = 7;
    10       pageContext.setAttribute("day",day);
    11    %>
    12       <c:choose>
    13           <c:when test="${day == 1}">
    14               星期一
    15           </c:when>
    16           <c:when test="${day == 2}">
    17               星期二
    18           </c:when>
    19           <c:when test="${day == 3}">
    20               星期三
    21           </c:when>
    22           <c:when test="${day == 4}">
    23               星期四
    24           </c:when>
    25           <c:when test="${day == 5}">
    26               星期五
    27           </c:when>
    28         <c:otherwise>
    29             休息日!
    30         </c:otherwise>
    31       </c:choose>
    32   </body>
    33 </html>


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

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6   </head>
     7   <body>
     8       <h1>实验:遍历10到100的偶数,如果数字所在的位置是3的倍数,显示成红色</h1><hr>
     9       <c:forEach begin="10" end="100" step="2" var="i" varStatus="stat">
    10           <c:if test="${stat.count % 3 == 0}">
    11               <font color="red">
    12                   ${i }
    13               </font>
    14           </c:if>
    15           <c:if test="${stat.count % 3 != 0}">
    16               <font color="blue">
    17                   ${i }
    18               </font>
    19           </c:if>
    20       </c:forEach>
    21   
    22       <h1>循环执行指定的内容若干次</h1><hr>
    23       <c:forEach begin="0" end="10" step="2" var="i" >
    24           ${i },
    25       </c:forEach>
    26       <h1>遍历Map中的数据</h1><hr>
    27       <%
    28           Map map = new LinkedHashMap();
    29           map.put("name","曹操");
    30           map.put("age","59");
    31           map.put("wife","小乔");
    32           map.put("gender","");
    33           pageContext.setAttribute("map",map);
    34        %>
    35       <c:forEach items="${map}" var="entry" >
    36           ${entry.key }:${entry.value }<br>
    37       </c:forEach>
    38       
    39       <h1>遍历集合中的数据</h1><hr>
    40       <%
    41         List list = new ArrayList();
    42         list.add("美国");
    43         list.add("中国");
    44         list.add("俄罗斯");
    45         list.add("印度");
    46         list.add("巴西");
    47           pageContext.setAttribute("list",list);
    48        %>
    49        <c:forEach items="${list}" var="c">
    50        ${c }<br>
    51        </c:forEach>
    52        
    53       <h1>遍历数组中的数据</h1><hr>
    54       <%
    55           String []  city = {"北京","上海","广州","铁岭","葫芦岛"};
    56           pageContext.setAttribute("city",city);
    57        %>
    58        <c:forEach items="${city}" var="c">
    59            ${c }<br>
    60        </c:forEach>
    61   </body>
    62 </html>


    <c:forTokens>用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的,用来切割字符串

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6   </head>
     7   <body>
     8       <c:forTokens items="www.itheima.com" delims="." var="str">
     9           ${str }<br>
    10       </c:forTokens>
    11   </body>
    12 </html>

    <c:param>标签 在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。
    <c:import> 标签,实现include操作
    <c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。URL重写就是将会话标识号以参数形式附加在URL地址后面
    <c:redirect>标签用于实现请求重定向


    纸上学来终觉浅,觉知此事需躬行
  • 相关阅读:
    hdu 6440 Dream(费马小定理+构造)
    [POJ3107]Godfather
    [POJ2488]A Knight's Journey
    [POJ3009]Curling 2.0
    [BZOJ1040][CODEVS1423][ZJOI2008]骑士
    [BZOJ1103] [POI2007]大都市meg
    BZOJ1827 [Usaco2010 Mar]gather 奶牛大集会
    [codevs1286]郁闷的出纳员
    [codevs3044]矩形面积求并
    BZOJ4563[Haoi2016]放棋子
  • 原文地址:https://www.cnblogs.com/dreamHighMjc/p/7105650.html
Copyright © 2020-2023  润新知