JSP编程专题2之JSP核心四(JSTL核心标签库,格式化标签库)
2017-10-24 21:57
627 查看
1、JSTL核心标签库:
- 使用JSTL的核心标签库,需要在页面中通过taglib指令首先将标签库导入。(首先得将JSTLjar包导入)
a、c:set标签:有三种用法
- 用于进行变量定义,并将变量存放到指定域属性空间;用于为Bean的属性赋值;用于设置Map的key与value等。该标签在实际开发中并不常用。
b、c:remove标签:从域属性空间中删除指定变量。该标签不常用。
c、c:if标签:用于实现对于条件的判断
- var:存储test的判断结果。不常用。
- scope:存储test判断结果的变量的存放范围。不常用。
d、<c:choose>就像在Java switch语句,它可以让你在一些替代方案之间选择。
- <c:choose>标签没有任何属性。
- <c:when>标记有一个test属性(用于计算条件)。
- <c:otherwise>标签没有任何属性。
e、c:forEach标签的基本用法:用于循环遍历数组、List、Set、Map集合。在实际应用中使用非常频繁。
- begin:开始下标;end:结束下标;(包含结束下标)。
- step:表示步长,各一个输出。
f、c:forEach标签的高级用法:
- varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。(vs.count表示序号;vs.index表示索引号(从0开始);vs.first:当迭代的时候是第一个时,显示为true,否则显示为false。)
2、JSTL格式化标签库:使用JSTL的格式化标签库,需要在页面中通过taglib指令首先将标签库导入。
a、fmt:formatDate标签:该标签用于使用不同的模式格式化日期。其常用属性有:
- value:将要被格式化的数据。
- pattern:格式化的模式。其与SimpleDateFormat的参数设置方式相同。
- var:格式化后的字符串所要存放的变量。若不指定var,则会将格式化过的结果直接显示在页面中。
- scope:变量存放的域属性空间,取值为page、request、session和application,默认为page范围。
- type:其取值为date、time或者是both,表示给出的value是日期、时间,还是两者都包含,默认为date。
- 示例:使用格式化日期标签:(显示“年-月-日”格式)
- 再如将格式化后的日期字符串显示到表单中:
b、fmt:parseDate标签:该标签用于将指定字符串转换成日期类型。常用的属性有:
- value:将要被转换的数据。
- pattern:将要被转换的数据的模式。其与SimpleDateFormat的参数设置方式相同。
- var:转换后的日期类型数据所要存放的变量。若不指定var,则会将转换过的结果直接显示在页面中。
- scope:变量存放的域属性空间。取值为page、request、session、application,默认为page范围。
c、fmt:formatNumber:该标签用于按照指定格式对数字进行格式化。常用的属性有:
- 示例:
d、fmt:parseNumber标签:该标签用于将指定字符串转换成数值类型。常用的属性有:
- 示例:
- 使用JSTL的核心标签库,需要在页面中通过taglib指令首先将标签库导入。(首先得将JSTLjar包导入)
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
a、c:set标签:有三种用法
- 用于进行变量定义,并将变量存放到指定域属性空间;用于为Bean的属性赋值;用于设置Map的key与value等。该标签在实际开发中并不常用。
<br> ------------------- c:set 将变量存放到指定域中 ---------------- <br> <c:set var="name" value="张三" scope="session" /> name = ${pageScope.name} <br> name = ${sessionScope.name} <br> <!-- 输出结果为: ------------------- c:set 将变量存放到指定域中 ---------------- name = name = 张三 ->- scope属性值默认是“pageContext”。
<br> -------------------c:set 为Bean的属性赋值 ------------------<br> <% Student student = new Student(); pageContext.setAttribute("student", student); %> <c:set value="李四" property="name" target="${pageScope.student}" ></c:set> <c:set value="24" property="age" target="${pageScope.student}" ></c:set> student = ${student} <br> <!-- 输出结果为: -------------------c:set 为Bean的属性赋值 ------------------ student = Student [name=李四, age=24] -->
<br> ---------------------- c:set为Map赋值 --------------------- <br> <% Map<String, Object> map = new HashMap<String, Object>(); pageContext.setAttribute("map", map); %> <c:set value="即可" property="name" target="${pageScope.map }"></c:set> <c:set value="20" property="age" target="${pageScope.map }"></c:set> map = ${map } <br> name = ${map.name } <br> age = ${map.age } <br> <!-- 输出结果为: ---------------------- c:set为Map赋值 --------------------- map = {name=即可, age=20} name = 即可 age = 20 -->
b、c:remove标签:从域属性空间中删除指定变量。该标签不常用。
<br> ---------------------------- c:remove 删除指定域中的属性 -------------------- <br> <c:set var="school" value="pag_school" /> <c:set var="school" value="req_school" scope="request" /> <c:set var="school" value="ses_school" scope="session" /> <c:set var="school" value="app_school" scope="application" /> <c:remove var="school" scope="session" /> school = ${pageScope.school } <br> school = ${requestScope.school } <br> school = ${sessionScope.school } <br> school = ${applicationScope.school } <br> <!-- 输出结果为: ---------------------------- c:remove 删除指定域中的属性 -------------------- school = pag_school school = req_school school = school = app_school -->
c、c:if标签:用于实现对于条件的判断
<br> -------------- c:if -------------- <br> <c:set var="user" value="admin" /> <c:if test="${user == 'admin'}" > <a href="#">进入管理页面</a> </c:if> <!-- 输出结果为: -------------- c:if -------------- 进入管理页面 -->- test:判断的条件。若为true,则执行标签体,否则不执行。
- var:存储test的判断结果。不常用。
- scope:存储test判断结果的变量的存放范围。不常用。
d、<c:choose>就像在Java switch语句,它可以让你在一些替代方案之间选择。
- <c:choose>标签没有任何属性。
- <c:when>标记有一个test属性(用于计算条件)。
- <c:otherwise>标签没有任何属性。
<br> ---------------------- c:choose ------------------------ <br> <c:set var="pageno" value="2" /> <c:set var="totalPages" value="5" /> <c:choose> <c:when test="${totalPages == 1 }"> 首页 上一页 下一页 当前是 ${pageno } / ${totalPages } 页 </c:when> <c:when test="${pageno == 1 }"> 首页 上一页 <a href="#">下一页</a> <a href="#">末页</a> 当前是${pageno } / ${totalPages }页 </c:when> <c:otherwise> <a href="#">首页</a> <a href="#">上一页</a> <a href="#">下一页</a> <a href="#">末页</a> 当前是${pageno } / ${totalPages }页 </c:otherwise> </c:choose> <!-- 输出结果为: ---------------------- c:choose ------------------------ 首页 上一页 下一页 末页 当前是2 / 5页 -->
e、c:forEach标签的基本用法:用于循环遍历数组、List、Set、Map集合。在实际应用中使用非常频繁。
<br> -------------------- 遍历List ---------------<br> <% List<String> names = new ArrayList<String>(); names.add("张三"); names.add("李四"); names.add("王五"); pageContext.setAttribute("names", names); %> <c:forEach items="${names }" var="name"> ${name } <br> </c:forEach> <!-- 输出结果为: -------------------- 遍历List --------------- 张三 李四 王五 -->
- begin:开始下标;end:结束下标;(包含结束下标)。
<br> -------------------- 遍历List ---------------<br> <% List<String> names = new ArrayList<String>(); names.add("郑二"); names.add("张三"); names.add("李四"); names.add("王五"); names.add("赵六"); names.add("田七"); names.add("刘八"); pageContext.setAttribute("names", names); %> <c:forEach items="${names }" var="name" begin="3" end="5"> ${name } <br> </c:forEach> <!-- 输出结果为: -------------------- 遍历List --------------- 王五 赵六 田七 -->
- step:表示步长,各一个输出。
<br> -------------------- 遍历List ---------------<br> <% List<String> names = new ArrayList<String>(); names.add("郑二"); names.add("张三"); names.add("李四"); names.add("王五"); names.add("赵六"); names.add("田七"); names.add("刘八"); pageContext.setAttribute("names", names); %> <c:forEach items="${names }" var="name" begin="0" end="5" step="2"> ${name } <br> </c:forEach> <!-- 输出结果为: -------------------- 遍历List --------------- 郑二 李四 赵六 -->
f、c:forEach标签的高级用法:
- varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。(vs.count表示序号;vs.index表示索引号(从0开始);vs.first:当迭代的时候是第一个时,显示为true,否则显示为false。)
<br>---------------------- 遍历List ---------------------<br> <% List<Student> students = new ArrayList<Student>(); students.add(new Student("张三", 23)); students.add(new Student("李四", 24)); students.add(new Student("王五", 25)); students.add(new Student("赵六", 26)); students.add(new Student("田七", 27)); pageContext.setAttribute("students", students); %> <table border="1"> <tr> <th>序号</th> <th>姓名</th> <th>年龄</th> </tr> <c:forEach items="${students }" var="student" varStatus="vs"> <tr> <td>${vs.count}</td> <td>${student.name}</td> <td>${student.age}</td> </tr> </c:forEach> </table> <!-- 输出结果为: ---------------------- 遍历List --------------------- 序号 姓名 年龄 1 张三 23 2 李四 24 3 王五 25 4 赵六 26 5 田七 27 -->
2、JSTL格式化标签库:使用JSTL的格式化标签库,需要在页面中通过taglib指令首先将标签库导入。
<%@ taglib uri=" prefix="fmt" %>
a、fmt:formatDate标签:该标签用于使用不同的模式格式化日期。其常用属性有:
- value:将要被格式化的数据。
- pattern:格式化的模式。其与SimpleDateFormat的参数设置方式相同。
- var:格式化后的字符串所要存放的变量。若不指定var,则会将格式化过的结果直接显示在页面中。
- scope:变量存放的域属性空间,取值为page、request、session和application,默认为page范围。
- type:其取值为date、time或者是both,表示给出的value是日期、时间,还是两者都包含,默认为date。
<% Date now = new Date(); pageContext.setAttribute("now", now); %> now = ${now } <br> <!-- 输出结果为: now = Sun Nov 05 14:00:26 CST 2017 -->
- 示例:使用格式化日期标签:(显示“年-月-日”格式)
now = <fmt:formatDate value="${now}" pattern="yyyy-MM-dd" /><br> <!-- 输出结果为: now = 2017-11-05 -->
- 再如将格式化后的日期字符串显示到表单中:
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" var="birth" /> <br> 生日:<input type="text" name="birthday" value="${birth}" />
b、fmt:parseDate标签:该标签用于将指定字符串转换成日期类型。常用的属性有:
- value:将要被转换的数据。
- pattern:将要被转换的数据的模式。其与SimpleDateFormat的参数设置方式相同。
- var:转换后的日期类型数据所要存放的变量。若不指定var,则会将转换过的结果直接显示在页面中。
- scope:变量存放的域属性空间。取值为page、request、session、application,默认为page范围。
<br> --------------------------- 字符串转换成日期 -------------- <br> <fmt:parseDate value="1949/10/01" pattern="yyyy/MM/dd"></fmt:parseDate> <br> <fmt:parseDate value="1949/10/01" pattern="yyyy/MM/dd" var="day"></fmt:parseDate><br> day = ${day} <!-- 输出结果为: --------------------------- 字符串转换成日期 -------------- Sat Oct 01 00:00:00 CST 1949 day = Sat Oct 01 00:00:00 CST 1949 -->
c、fmt:formatNumber:该标签用于按照指定格式对数字进行格式化。常用的属性有:
- 示例:
<br> -------------------------- 格式化数字 -------------------- <br> <fmt:formatNumber value="${12345678 }"></fmt:formatNumber> <br> <fmt:formatNumber value="${12345678 }" groupingUsed="false"></fmt:formatNumber> <br> <fmt:formatNumber value="${12345.678 }" maxIntegerDigits="8" minIntegerDigits="6"></fmt:formatNumber> <br> <fmt:formatNumber value="${12345.674 }" maxFractionDigits="2"></fmt:formatNumber> <!-- 输出结果为: -------------------------- 格式化数字 -------------------- 12,345,678 12345678 012,345.678 12,345.67 -->
d、fmt:parseNumber标签:该标签用于将指定字符串转换成数值类型。常用的属性有:
- 示例:
<br>------------------- 字符串转换成数字 -----------------<br> <fmt:parseNumber value="12345.678" integerOnly="true"></fmt:parseNumber> <br> <fmt:parseNumber value="12345.678" integerOnly="true" var="num"></fmt:parseNumber> num + 1 = ${num + 1 } <!-- 输出结果为: ------------------- 字符串转换成数字 ----------------- 12345 num + 1 = 12346 -->
相关文章推荐
- JSP编程专题2之JSP核心三(EL函数标签)
- [JSP]JSTL简介、核心标签库
- JSP基础语法之十六:JSTL配置和核心标签(C)的使用
- 实际项目开发中需要的格式化标签以及JSTL标签库介绍【1核心标签(用得最多)2 国际化标签(I18N格式化标签) 数据库标签(SQL标签,很少使用) XML标签(几乎不用) JSTL函数(EL函数)】
- JSP中一些JSTL核心标签用法总结
- JSP——JSTL核心标签(2)
- 解决在jsp页面用jstl标签的forEach循环里头格式化时间
- JSP系列:(6)JSP进阶-模仿JSTL核心(core)标签库
- EL表达式----JSP11个隐式对象----EL函数----JSTL核心标签if,foreach
- JSP编程专题2之JSP核心一(内置对象,JSP指令以及JSP动作)
- JSP编程专题2之JSP核心二(EL表达式,EL运算符以及除了和四个域属性空间相关的EL内置对象)
- JSP中JSTL核心标签库的标签
- JSP标签之jstl核心标签
- JSTL标签(可以直接在jsp页面格式化)
- JSP中常用的JSTL fmt(format格式化)标签用法整理
- JSP之JSTL标签-核心标签库
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
- JSP中JSTL核心标签库的<c:choose>标签
- JSP中用JSTL标签格式化日期、小数
- JSP中一些JSTL核心标签用法总结