知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
設置變數
<c:set var="foo" scope="request" value="helloworld"> or <%request.setAttribute("foo","helloworld") %> <c:out value="${requestScope.foo}"/>
輸出變數variable的內容
<c:out value="${variable}"/> <%=request.getParameter("UA")%> 相當於 <c:out value="${param.UA}"/> 預設值 <c:out value="${param.UA}" default="UA-69658002-1" />
<c:import url="http://www.netkiller.cn" /> <c:import var="html" url="http://www.netkiller.cn"/> <c:out value="${html}"/>
傳遞GET參數
<c:import url="http://www.netkiller.cn" > <c:param name="id" value="10" /> <c:param name="name" value="neo" /> </c:import>
異常處理
<c:catch var="exception"> <c:import url="ftp://ftp.example.com/package/README"/> </c:catch> <c:if test="${not empty exception}"> Sorry, the remote content is not currently available. </c:if>
在Context間切換
server.conf: <Context reloadable="true" crossContext="true" /> <c:import url="/path/to/file.jsp" context=/project1" /> <c:import url="/path/to/file.jsp" context=/project2" />
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <title><c:if> Tag Example</title> </head> <body> <c:set var="salary" scope="session" value="${2000*2}"/> <c:if test="${salary > 2000}"> <p>My salary is: <c:out value="${salary}"/><p> </c:if> </body> </html>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:choose> <c:when test="${session.auth eq 'true' }"> </c:when> <c:otherwise> </c:otherwise> </c:choose>
實現 if else/else if / else
<c:choose> <c:when test="${..}">...</c:when> <!-- if condition --> <c:when test="${..}">...</c:when> <!-- else if condition --> <c:otherwise>...</c:otherwise> <!-- else condition --> </c:choose>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ 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=ISO-8859-1"> <title>Insert title here</title> </head> <body> ${bookList} <br> <c:forEach items="${bookList}" var="node"> <c:out value="${node}"></c:out><br> </c:forEach> </body> </html>
<%@ 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=ISO-8859-1"> <title>Insert title here</title> </head> <body> <c:forEach items="${channel}" var="node"> <a href="<c:out value="${node.value}"></c:out>"><c:out value="${node.key}"></c:out></a> <br/> </c:forEach> </body> </html>
src/resources/config.properties
Name=Neo Address=Shenzhen Number=13322993040
<%@ 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>JSTL fmt:setBundle Tag</title> </head> <body> <fmt:setBundle basename="resources.config" var="config" /> <fmt:message key="Name" bundle="${config}" /> <fmt:message key="Address" bundle="${config}" /> <fmt:message key="Number" bundle="${config}" /> </body> </html>
<fmt:bundle basename="lang"> <fmt:message key="Name" /> <fmt:message key="Address" /> </fmt:bundle>
<fmt:setTimeZone value="Europe/London" scope="session"/>
<fmt:formatDate value="${isoDate}" type="both"/> 2004-5-31 23:59:59 <fmt:formatDate value="${date}" type="date"/> 2004-4-1 <fmt:formatDate value="${isoDate}" type="time"/> 23:59:59 <fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/> 2004-5-31 <fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/> 04-5-31 <fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/> 2004-5-31 <fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/> 2004年5月31日 <fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/> 2004年5月31日 星期一 <fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/> 23:59:59 <fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/> 下午11:59 <fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/> 23:59:59 <fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/> 下午11時59分59秒 <fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/> 下午11時59分59秒 CDT <fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/> 星期四, 四月 1, 2004 13:30:00 -0600 <fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/> 31 五月 04, 11:59:59 下午 中央夏令時 格式模式: d 月中的某一天。一位數的日期沒有前導零。 dd 月中的某一天。一位數的日期有一個前導零。 ddd 周中某天的縮寫名稱,在 AbbreviatedDayNames 中定義。 dddd 周中某天的完整名稱,在 DayNames 中定義。 M 月份數字。一位數的月份沒有前導零。 MM 月份數字。一位數的月份有一個前導零。 MMM 月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。 MMMM 月份的完整名稱,在 MonthNames 中定義。 y 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示不具有前導零的年份。 yy 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示具有前導零的年份。 yyyy 包括紀元的四位數的年份。 gg 時期或紀元。如果要設置格式的日期不具有關聯的時期或紀元字元串,則忽略該模式。 h 12 小時制的小時。一位數的小時數沒有前導零。 hh 12 小時制的小時。一位數的小時數有前導零。 H 24 小時制的小時。一位數的小時數沒有前導零。 HH 24 小時制的小時。一位數的小時數有前導零。 m 分鐘。一位數的分鐘數沒有前導零。 mm 分鐘。一位數的分鐘數有一個前導零。 s 秒。一位數的秒數沒有前導零。 ss 秒。一位數的秒數有一個前導零。 <fmt:formatDate value="${xx}" pattern="dd/MM/yyyy HH:mm aa"/>和 <fmt:formatDate value="${xx}" pattern="dd/MM/yyyy hh:mm aa"/> 對於0點顯示的結果不一樣 <fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd HH:mm:ss z" timeZone="GMT"/> <fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd HH:mm:ss z" timeZone="US/Eastern"/>