JSTL
JSTL(Java Server Page Standard Tag Library),标准标签库。是为了能够提高JAVA WEB开发的效率以及维护性。
在JSTL中包括两种常用标签库内容:
- 核心标签:核心标签库是整个JSTL中最常用的部分,主要由以下几部分组成:基本输入输出、流程控制、迭代操作和URL操作。负责Web应用的常见工作,如:循环、表达式赋值、基本输入输出等。
- I18N格式标签库:用来格式化显示数据的工作如:对不同区域的日期格式化等。
核心标签库
输入输出
步骤1:导入jstl的依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
步骤2:在使用该库的页面中添加指令
格式化库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/f
mt" %>
核心库
<%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>
步骤3:使用标签库
<c:set var="变量名" value="值" scope="request|session|application"/>
<c:set var="num" value="100" />
将一个对象中的属性进行修改
target:代表要修改的对象
property:要修改的对象中的属性
value:要修改的属性值
<c:set target="${userInfo}" property="username" value="zhangsan" />
步骤4:输出内容
<c:out value="${num}" />
<%--
value:代表要输出的内容,如果直接写了内容,就会按照普通输出的方式显示在页面上
default;如果没有找到对应的变量,就会采用default作为值输出
--%>
- 删除属性
<c:remove var="变量" />
- 条件标签
<c:if test="条件表达式">
</c:if>
if表达式是没有else的相关操作的,如果需要多层判断,则需要多谢一些if的语法
<c:if test="${empty userInfo}">
您还没有登录!
</c:if>
<c:if test="${not empty userInfo}">
您好,${userInfo.username}
</c:if>
<choose>
<c:when test="条件表达式">
//满足条件
</c:when>
...
<c:otherwise>
//多个条件都不满足,就会执行该段
语句
</c:otherwise>
</choose>
<c:choose>
<c:when test="${empty userInfo}">
您还没有登录!
</c:when>
<c:otherwise>
您好,${userInfo.username}
</c:otherwise>
</c:choose>
- 循环控制
<c:forEach var="循环时的变量" items="集合|数组" begin="起始值" end="结束值" step="迭代步长"
varStatus="循环属性变量">
//循环体
</c:forEach>
//遍历集合
<c:forEach var="str" items="${strings}">
${str}
</c:forEach>
//按普通的值遍历
<c:forEach var="i" begin="0" end="10" step="1">
<a href="#">${i}</a>
</c:forEach>
//遍历map集合
<c:forEach var="m" items="${map}">
${m.key} --- ${m.value}
</c:forEach>
//获取varStatus中的变量内容
<c:forEach var="str" items="${strings}" varStatus="status">
<%--${status.index + 1} ${str}--%>
${status.last}
</c:forEach>
- 格式化
o 数字格式化
<fmt:formatNumber value="12.34" pattern="#0.00" /> 12.34 保留小数点后两位数
<fmt:formatNumber value="12" type="currency" pattern="$.00"/> -- $12.00
<fmt:formatNumber value="12" type="currency" pattern="$.0#"/> -- $12.0
<fmt:formatNumber value="1234567890" type="currency"/> --$1,234,567,890.00(那个货币的符
号和当前web服务器的 local 设定有关)
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> --123,456.79
<fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> --123,456.7
<fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> --123,456.70
<fmt:formatNumber value="12" type="percent" /> --1,200%type 可以是currency、number、 和percent。
o 日期格式化
1.<fmt:formatDate value="${date}" type="both"/>
输出格式: 2010-5-31 23:59:59
2.<fmt:formatDate value="${date}" type="date"/>
输出格式: 2010-4-1
3.<fmt:formatDate value="${date}" type="time"/>
输出格式: 23:59:59
4.<fmt:formatDate value="${date}" type="date" dateStyle="default"/>
输出格式:2010-5-31
5.<fmt:formatDate value="${date}" type="date" dateStyle="short"/>
输出格式:04-5-31
6.<fmt:formatDate value="${date}" type="date" dateStyle="medium"/>
输出格式:2010-5-31
7.<fmt:formatDate value="${date}" type="date" dateStyle="long"/>
输出格式: 2010年5月31日
8.<fmt:formatDate value="${date}" type="date" dateStyle="full"/>
输出格式:2010年5月31日 星期一
9.<fmt:formatDate value="${date}" type="time" timeStyle="default"/>
输出格式: 23:59:59
10.<fmt:formatDate value="${date}" type="time" timeStyle="short"/>
输出格式:下午11:59
11.<fmt:formatDate value="${date}" type="time" timeStyle="medium"/>
输出格式: 23:59:59
12.<fmt:formatDate value="${date}" type="time" timeStyle="long"/>
输出格式: 下午11时59分59秒