zoukankan      html  css  js  c++  java
  • java Web JSTL介绍及基本应用

    由于实际开发中我们一般不能在jsp页面上写java代码,而el表达式也做不了判断 循环之类的复杂操作,为了弥补这些缺点,所以就有了JSTL。

    简介

    JavaServer Pages Standard Tag Library,JSP标准标签库

    从JSP1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。为此,许多Web应用厂商都定制了自身应用的标签库,然而同一功能的标签由不同的Web应用厂商制定可能是不同的,这就导致市面上出现了很多功能相同的标签,令网页制作者无从选择,为了解决这个问题,Sun公司制定了一套标准标签库(JavaServer Pages Standard Tag Library),简称JSTL。

    STL虽然被称为标准标签库,而实际上这个标签库是由5个不同功能的标签库共同组成的。在JSTL1.1规范中,为这5个标签库分别指定了不同的URI以及建议使用的前缀,如下所示:

    标签库标签库的URI前缀
    Core http://java.sun.com/jsp/jstl/core c
    I18N http://java.sun.com/jsp/jstl/fmt fmt
    SQL http://java.sun.com/jsp/jstl/sql sql
    XML http://java.sun.com/jsp/jstl/xml x
    Functions http://java.sun.com/jsp/jstl/functions fn

    基本应用

    需要先引入jstl.jar 和 standard.jar两个jar包

    其次要在页面上引入标签库:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <html>
    <head></head>
    <body>
        <c:out value="Hello World!"></c:out>
    </body>
    </html>    

    基本应用(以循环和格式化日期为例):

    foreach遍历数组和集合:

    <%@page import="java.util.Map"%>
    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.Collections"%>
    <%@page import="java.util.List"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <!-- 需求: 遍历域容器中的复杂数据(数组, list, map) -->
        <%
            int[] arr = {111, 333, 555};
            pageContext.setAttribute("arr1", arr);
        %>
        <c:forEach items="${arr1 }" var="e" varStatus="vs">
            ${vs.index } ${vs.count }  ${e } <br/>
        </c:forEach>
        <hr/>
        
        <%
            List list = new ArrayList();
            Collections.addAll(list, "aaa", "ccc", "eee");
            pageContext.setAttribute("list1", list);
        %>
        <c:forEach items="${list1 }" var="e">
            ${e }<br/>
        </c:forEach>
        <hr/>
        
        <%
            Map<String, Integer> map = new HashMap<String, Integer>();
            map.put("aaa", 111);
            map.put("ccc", 333);
            map.put("eee.ddd.bbb", 555);
            map.put("fff", 666);
            
            pageContext.setAttribute("map1", map);
        %>
        <c:forEach items="${map1 }" var="en">
            ${en.key } === ${en.value } <br/>
        </c:forEach>
    </body>
    </html>

    for循环遍历数组和集合:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h3>使用forEach输出 1~10, 奇数为红色,偶数为蓝色</h3>
        <c:forEach begin="1" end="10" step="1" var="i">
            <font color="${i%2!=0?'red':'blue' }">${i }</font>
        </c:forEach>
        <br/>
        <c:forEach begin="1" end="10" step="4" var="i" varStatus="vs">
            <font color="${vs.count%2!=0?'red':'blue' }">${i }</font>
        </c:forEach>
        
    <h3>使用forEach完成 1~10的和</h3>
        <h4>java</h4>
            <%
                int sum = 0;
                for(int i=1;i<=10;i++) {
                    sum += i;
                }
                out.print("java 和:" + sum);
            %>
        <h4>jstl + el</h4>
            <c:set var="sum" value="0"></c:set>
            <c:forEach begin="1" end="10" step="1" var="i">
                <c:set var="sum" value="${sum + i }"></c:set>
            </c:forEach>
            EL 和: ${sum }
    </body>
    </html>

    格式化日期:

    <%@page import="java.util.Date"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <!-- 格式化日期 -->
        <%
            Date date = new Date();
            pageContext.setAttribute("date1", date);
        %>
        
        <fmt:formatDate value="${date1 }" pattern="yyyy-MM-dd HH:mm:ss"/>
    </body>
    </html>

    其他应用请自行百度。

  • 相关阅读:
    hdu-1862 EXCEL排序
    hdu-1754 I Hate It
    hdu-1538 A Puzzle for Pirates
    在Window下安装Linux (ubuntu-16.04.2)
    Python爬虫--简单的单词查询
    Linux下MySQL在知道密码的情况下修改密码
    Linux下忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法
    Python的下载及安装
    在Netbeans的项目中添加JDBC驱动程序
    Mac下截屏方法
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9245069.html
Copyright © 2011-2022 走看看