1、JSTL核心标签库:
-使用JSTL的核心标签库,需要在页面中通过taglib指令首先将标签库导入。(首先得将JSTLjar包导入)
<%@tagliburi=";prefix="c"%>
a、c:set标签:有三种用法
-用于进行变量定义,并将变量存放到指定域属性空间;用于为Bean的属性赋值;用于设置Map的key与value等。该标签在实际开发中并不常用。
<br>-------------------c:set将变量存放到指定域中----------------<br>
<c:setvar="name"value="张三"scope="session"/>
name=${}<br>
name=${}<br>
<!--
输出结果为:
-------------------c:set将变量存放到指定域中----------------
name=
name=张三
->
-scope属性值默认是“pageContext”。
<br>-------------------c:set为Bean的属性赋值------------------<br>
<%
Studentstudent=newStudent();
("student",student);
%>
<c:setvalue="李四"property="name"target="${}"></c:set>
<c:setvalue="24"property="age"target="${}"></c:set>
student=${student}<br>
<!--
输出结果为:
-------------------c:set为Bean的属性赋值------------------
student=Student[name=李四,age=24]
-->
<br>----------------------c:set为Map赋值---------------------<br>
<%
Map<String,Object>map=newHashMap<String,Object>();
("map",map);
%>
<c:setvalue="即可"property="name"target="${}"></c:set>
<c:setvalue="20"property="age"target="${}"></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:setvar="school"value="pag_school"/>
<c:setvar="school"value="req_school"scope="request"/>
<c:setvar="school"value="ses_school"scope="session"/>
<c:setvar="school"value="app_school"scope="application"/>
<c:removevar="school"scope="session"/>
school=${}<br>
school=${reque}<br>
school=${}<br>
school=${a}<br>
<!--
输出结果为:
----------------------------c:remove删除指定域中的属性--------------------
school=pag_school
school=req_school
school=
school=app_school
-->
c、c:if标签:用于实现对于条件的判断
<br>--------------c:if--------------<br>
<c:setvar="user"value="admin"/>
<c:iftest="${user=='admin'}">
<ahref="#">进入管理页面</a>
</c:if>
<!--
输出结果为:
--------------c:if--------------
进入管理页面
-->
-test:判断的条件。若为true,则执行标签体,否则不执行。
-var:存储test的判断结果。不常用。
-scope:存储test判断结果的变量的存放范围。不常用。
d、<c:choose>就像在Javaswitch语句,它可以让你在一些替代方案之间选择。
-<c:choose>标签没有任何属性。
-<c:when>标记有一个test属性(用于计算条件)。
-<c:otherwise>标签没有任何属性。
<br>----------------------c:choose------------------------<br>
<c:setvar="pageno"value="2"/>
<c:setvar="totalPages"value="5"/>
<c:choose>
<c:whentest="${totalPages==1}">
首页上一页下一页当前是${pageno}/${totalPages}页
</c:when>
<c:whentest="${pageno==1}">
首页上一页<ahref="#">下一页</a><ahref="#">末页</a>当前是${pageno}/${totalPages}页
</c:when>
<c:otherwise>
<ahref="#">首页</a><ahref="#">上一页</a><ahref="#">下一页</a><ahref="#">末页</a>当前是${pageno}/${totalPages}页
</c:otherwise>
</c:choose>
<!--
输出结果为:
----------------------c:choose------------------------
首页上一页下一页末页当前是2/5页
-->
e、c:forEach标签的基本用法:用于循环遍历数组、List、Set、Map集合。在实际应用中使用非常频繁。
<br>--------------------遍历List---------------<br>
<%
List<String>names=newArrayList<String>();
names.add("张三");
names.add("李四");
names.add("王五");
("names",names);
%>
<c:forEachitems="${names}"var="name">
${name}<br>
</c:forEach>
<!--
输出结果为:
--------------------遍历List---------------
张三
李四
王五
-->
-begin:开始下标;end:结束下标;(包含结束下标)。
<br>--------------------遍历List---------------<br>
<%
List<String>names=newArrayList<String>();
names.add("郑二");
names.add("张三");
names.add("李四");
names.add("王五");
names.add("赵六");
names.add("田七");
names.add("刘八");
("names",names);
%>
<c:forEachitems="${names}"var="name"begin="3"end="5">
${name}<br>
</c:forEach>
<!--
输出结果为:
--------------------遍历List---------------
王五
赵六
田七
-->
-step:表示步长,各一个输出。
<br>--------------------遍历List---------------<br>
<%
List<String>names=newArrayList<String>();
names.add("郑二");
names.add("张三");
names.add("李四");
names.add("王五");
names.add("赵六");
names.add("田七");
names.add("刘八");
("names",names);
%>
<c:forEachitems="${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=newArrayList<Student>();
(newStudent("张三",23));
(newStudent("李四",24));
(newStudent("王五",25));
(newStudent("赵六",26));
(newStudent("田七",27));
("students",students);
%>
<tableborder="1">
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<c:forEachitems="${students}"var="student"varStatus="vs">
<tr>
<td>${vs.count}</td>
<td>${}</td>
<td>${}</td>
</tr>
</c:forEach>
</table>
<!--
输出结果为:
----------------------遍历List---------------------
序号姓名年龄
1张三23
2李四24
3王五25
4赵六26
5田七27
-->
2、JSTL格式化标签库:使用JSTL的格式化标签库,需要在页面中通过taglib指令首先将标签库导入。
<%@tagliburi="prefix="fmt"%>
a、fmt:formatDate标签:该标签用于使用不同的模式格式化日期。其常用属性有:
-value:将要被格式化的数据。
-pattern:格式化的模式。其与SimpleDateFormat的参数设置方式相同。
-var:格式化后的字符串所要存放的变量。若不指定var,则会将格式化过的结果直接显示在页面中。
-scope:变量存放的域属性空间,取值为page、request、session和application,默认为page范围。
-type:其取值为date、time或者是both,表示给出的value是日期、时间,还是两者都包含,默认为date。
<%
Datenow=newDate();
("now",now);
%>
now=${now}<br>
<!--
输出结果为:
now=SunNov0514:00:26CST2017
-->
-示例:使用格式化日期标签:(显示“年-月-日”格式)
now=<fmt:formatDatevalue="${now}"pattern="yyyy-MM-dd"/><br>
<!--
输出结果为:
now=2017-11-05
-->
-再如将格式化后的日期字符串显示到表单中:
<fmt:formatDatevalue="${now}"pattern="yyyy-MM-dd"var="birth"/><br>
生日:<inputtype="text"name="birthday"value="${birth}"/>
b、fmt:parseDate标签:该标签用于将指定字符串转换成日期类型。常用的属性有:
-value:将要被转换的数据。
-pattern:将要被转换的数据的模式。其与SimpleDateFormat的参数设置方式相同。
-var:转换后的日期类型数据所要存放的变量。若不指定var,则会将转换过的结果直接显示在页面中。
-scope:变量存放的域属性空间。取值为page、request、session、application,默认为page范围。
<br>---------------------------字符串转换成日期--------------<br>
<fmt:parseDatevalue="1949/10/01"pattern="yyyy/MM/dd"></fmt:parseDate><br>
<fmt:parseDatevalue="1949/10/01"pattern="yyyy/MM/dd"var="day"></fmt:parseDate><br>
day=${day}
<!--
输出结果为:
---------------------------字符串转换成日期--------------
SatOct0100:00:00CST1949
day=SatOct0100:00:00CST1949
-->
c、fmt:formatNumber:该标签用于按照指定格式对数字进行格式化。常用的属性有:
-示例:
<br>--------------------------格式化数字--------------------<br>
<fmt:formatNumbervalue="${12345678}"></fmt:formatNumber><br>
<fmt:formatNumbervalue="${12345678}"groupingUsed="false"></fmt:formatNumber><br>
<fmt:formatNumbervalue="${12345.678}"maxIntegerDigits="8"minIntegerDigits="6"></fmt:formatNumber><br>
<fmt:formatNumbervalue="${12345.674}"maxFractionDigits="2"></fmt:formatNumber>
<!--
输出结果为:
--------------------------格式化数字--------------------
12,345,678
12345678
012,345.678
12,345.67
-->
d、fmt:parseNumber标签:该标签用于将指定字符串转换成数值类型。常用的属性有:
-示例:
<br>-------------------字符串转换成数字-----------------<br>
<fmt:parseNumbervalue="12345.678"integerOnly="true"></fmt:parseNumber><br>
<fmt:parseNumbervalue="12345.678"integerOnly="true"var="num"></fmt:parseNumber>
num+1=${num+1}
<!--
输出结果为:
-------------------字符串转换成数字-----------------
12345
num+1=12346
-->
更多相关资讯可以关注西安华美校区,免费获得java零基础教程!额外附送excel教程