【JavaWeb】JSTL标签库

JSTL标签库

JSTL标准标签库;

JSTL用于简化JSP开发,提高代码的可读性与可维护性;

JSTL由SUN(Oracle)定义规范,由Apache Tomcat团队实现;

引用JSTL核心库

  • 核心标签库(Core)是JSTL最重要的标签库,提供了JSTL的基础功能
  • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  • JSTL核心标签库在taglibs-standard-impl.jar由META-INF/c.tld定义

条件判断

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
	<%
		int x = 15;
		request.setAttribute("x", x);
	%>
	<c:if test="${ requestScope.x > 0 && requestScope.x <= 10 }">
		<div style="color:blue;font-weight:bold;">1-10之间的整数</div>
	</c:if>
	<c:if test="${ requestScope.x > 10 && requestScope.x <= 20 }">
		<div style="color:red;font-weight:bold;">11-20之间的整数</div>
	</c:if>
</body>
</html>

多重条件判断

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
	<c:choose>
		<c:when test="${ param.day == 'MONDAY' }">
			<h2 style="color:blue;">星期一</h2>
		</c:when>
		<c:when test="${ param.day == 'TUESDAY' }">
			<h2 style="color:blue;">星期二</h2>
		</c:when>
		<c:when test="${ param.day == 'WEDNESDAY' }">
			<h2 style="color:blue;">星期三</h2>
		</c:when>
		<c:when test="${ param.day == 'THURSDAY' }">
			<h2 style="color:blue;">星期四</h2>
		</c:when>
		<c:when test="${ param.day == 'FRIDAY' }">
			<h2 style="color:blue;">星期五</h2>
		</c:when>
		<c:when test="${ param.day == 'SATURDAY' }">
			<h2 style="color:blue;">星期六</h2>
		</c:when>
		<c:when test="${ param.day == 'SUNDAY' }">
			<h2 style="color:blue;">星期日</h2>
		</c:when>
		<c:otherwise>
			<h2 style="color:red;">内容不对哦!</h2>
		</c:otherwise>
	</c:choose>
</body>
</html>

遍历循环

MonthServlet.java

package jstl;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class MonthServlet
 */
@WebServlet("/month")
public class MonthServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
        
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MonthServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Set<String> setMonths = new HashSet();
        setMonths.add("January");
        setMonths.add("February");
        setMonths.add("March");
        setMonths.add("April");
        setMonths.add("May");
        request.setAttribute("months", setMonths);
        request.getRequestDispatcher("/month.jsp").forward(request, response);
    }
 
}

month.jsp

<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <c:forEach items="${requestScope.months }" var="c" varStatus="idx">
        <h2>${idx.index + 1} —— ${c }</h2>
    </c:forEach>
</body>
</html>

c:out

  • 属于核心标签库(Core)
  • <c:out value="${nothing}" default="无"></c:out>(nothing=null)将原本为null的值转义为"无"
  • <c:out value="${html}" escapeXml="true"></c:out>浏览器不进行解释,将html源代码显示

fmt格式化标签库

  • fmt格式化标签库URI:http://java.sun.com/jsp/jstl/fmt
  • <fmt:formatDate value="" pattern="">格式化日期标签
  • <fmt:formatNumber value="" pattern="">格式化数字标签

formatDate pattern

| yyyy | 四位年 | | ---- | -------- | | MM | 两位月 | | dd | 两位日 | | HH | 24小时制 | | hh | 12小时制 | | mm | 分钟 | | ss | 秒数 | | SSS | 毫秒 |

formatNumber pattern

  • "0.00":保留两位小数
  • "0,000.00":三位一分隔,保留两位小数
posted @ 2019-08-02 00:24  星海|universe  阅读(247)  评论(0编辑  收藏  举报