zoukankan      html  css  js  c++  java
  • JSP 标准标签库JSTL

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

    JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

    在使用JSTL的同时,我想过一个问题,为什么JSTL能实现的功能,Java也能做,可能对于开发人员来说,更熟悉java语言。

    经查阅资料,有人说是因为避免在Jsp语言中html和java语言混乱,导致开发效率低,页面不易维护,可读性差。一般来说,应该尽可能避免在jsp页面中嵌入Java代码,而是使用JSTL和EL表达式来实现同样的功能。

    核心标签

    核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

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

    应用:数组、对象、LIst、Map和Date

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3     <%@ page import="com.uplooking.controller.Student" %>
     4     <%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>
     5     <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
     6     <%@ page import="java.util.*" %>
     7 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     8 <html>
     9 <head>
    10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    11 <title>JSTL</title>
    12 </head>
    13 <body>
    14         <%
    15             Student stu=new Student();
    16             stu.setName("老王");
    17             stu.setClazz(1);
    18             pageContext.setAttribute("stu",stu);
    19             Student stu1=new Student();
    20             stu1.setName("老李");
    21             stu1.setClazz(2);
    22             pageContext.setAttribute("stu1",stu1);
    23             Student stu2=new Student();
    24             stu2.setName("老师");
    25             stu2.setClazz(3);
    26             pageContext.setAttribute("stu2",stu2);
    27        %>
    28         <!-- jstl -->
    29         <!-- 判断后台传过来的数据是否为空  与if一样 -->
    30         <c:if test="${stu1!=null }">
    31             <h4>登陆成功${stu1.name}</h4>
    32         </c:if>
    33         
    34         <c:if test="${stu3==null }">
    35             <h4>登录失败,请返回<a href="index.jsp">首页</a></h4>
    36         </c:if>
    37         <hr><!--------------------------------List----------------------------------------!>
    38         <%
    39             List<Student> stus=new ArrayList();
    40             stus.add(stu);
    41             stus.add(stu1); 
    42             stus.add(stu2);
    43             pageContext.setAttribute("stus", stus);
    44         %>
    45          <!-- items遍历需要的集合或者数组 var相当于一个临时变量-->
    46         <c:forEach items="${stus}"  var="stu"> 
    47             ${stu.name}&nbsp;
    48             <c:choose>
    49                 <c:when test="${stu.clazz==1 }">
    50                     终极一班 <br>
    51                 </c:when>
    52                 <c:when test="${stu1.clazz==2 }">
    53                     牛x二班 <br>
    54                 </c:when>
    55                 <c:when test="${stu2.clazz==3 }">
    56                     活力三班 <br>
    57                 </c:when>
    58                 <c:otherwise>
    59                     厉害 <br>
    60                 </c:otherwise>
    61             </c:choose>
    62         </c:forEach>
    63         <hr>
    64         <!-- map的循环遍历 -->
    65         <%
    66             Map<String,Student> map=new HashMap();
    67             map.put("10",stu);
    68             map.put("20",stu1);
    69             map.put("30",stu2);
    70             pageContext.setAttribute("map", map);
    71         %>
    72         <!--begin代表从第几个元素开始(从0开始)  varStatus自动排序(与分页有关)-->
    73         <c:forEach items="${map}" var="stu"  begin="1"  varStatus="vars">
    74             ${vars.count} --- ${stu.key} --- ${stu.value.name} <br>
    75         </c:forEach>
    76         
    77         <hr>
    78         <!-- set标签用于设置变量值和对象属性。 -->
    79         <c:set var="age"  value="66"></c:set>
    80         <c:if test="${age==66 }">
    81             老年人
    82         </c:if>
    83             ${age}
    84         <!-- remove标签移除变量age -->
    85             <c:remove var="age"/>
    86             ${age}
    87         <!-- date时间转换 -->
    88             <%pageContext.setAttribute("date",new Date()); %>
    89             <fmt:formatDate value="${date}"  pattern="yyyy-MM-dd  HH:mm:ss"/><br>
    90             <%pageContext.setAttribute("stringDate","2018-09-17  13:04:18"); %>
    91             <fmt:parseDate value="${stringDate}"  pattern="yyyy-MM-dd  HH:mm:ss"/><br>
    92         
    93         <!-- 百分  比转换 -->
    94         <fmt:formatNumber type="percent"  value="0.88"></fmt:formatNumber>
    95 </body>
    96 </html>

    执行结果:

  • 相关阅读:
    echarts 图表缩放 X轴Y轴数据缩放
    avue大屏 avuedata echarts图形数据过多自动滚动
    地图自定义弹窗 高德地图信息窗体 鼠标点击地图点标记显示弹窗html
    地图自定义弹窗 高德地图信息窗体 鼠标点击地图点标记显示弹窗vue
    自动刷新页面的实现方法总结
    vs2008 切换到试图代码后自动关闭问题
    时间差值
    Array.prototype.slice() 方法
    Array.prototype.slice.call()详解及转换数组的方法
    [UNIX网络编程1.0]源代码在linux系统下的实现
  • 原文地址:https://www.cnblogs.com/echola/p/9657269.html
Copyright © 2011-2022 走看看