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>

    执行结果:

  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/echola/p/9657269.html
Copyright © 2011-2022 走看看