JSTL标签快速入门详解干货 (九)

广告位

5 JSTL标签 一.简述及导入 JSTL标签最终会翻译成大段的Java代码 1、为项目导入jar包 2、为某…

5

JSTL标签

一.简述及导入

JSTL标签最终会翻译成大段的Java代码

1、为项目导入jar包

JSTL标签快速入门详解干货 (九)

2、为某个JSP使用taglib命令引入标签库

<%@ taglib prefix=”curi=”http://java.sun.com/jsp/jstl/core” %>

快捷导入方式:

JSTL标签快速入门详解干货 (九)

二.<c:if>

用来替代JSP上的if代码

属性名

说明/示例

test

if语句的布尔表达式。

为true,进入if

为false,不进if

和EL表达式连用。

代码:

<%     if(1==1){         out.write("<h1>果然相等</h1>");     } %> <c:if test="${1==1}">     <h1>果然相等</h1> </c:if> 

应用:

	如果用户登录成功(session中有user信息),展示“欢迎您” 		<c:if test=”${not empty user}”> 			欢迎您 		</c:if>

三.<c:choose>

If…else if…else

if(){

    1

}else if(){

   2

}else{

     3

}

<c:choose>

<c:when test=””> 1 </c:when>

<c:when test=””> 2 </c:when>

<c:otherwise> 3 </c:otherwise>

</c:choose>

  • <c:choose>:定义里面是一个if…else if….else 结构
  • <c:when>: 相当于 if   或者  else if   【1~多次】
  • <c:otherwise> : 相当于 else            【0~1次】

属性名

说明/示例

test

if语句的布尔表达式。

为true,进入if

为false,不进if

和EL表达式连用。

代码:

<%     request.setAttribute("num",10); %> <c:choose>     <c:when test="${num>10}">         num是大于10的     </c:when>     <c:when test="${num<10}">         num是小于10的     </c:when>     <c:otherwise>         num等于10的     </c:otherwise> </c:choose> 

四.<c:forEach>

for循环

属性名

说明/示例

items

必有属性 (可以被begin+end)

需要遍历的数组/集合

和EL表达式连用

var

必有属性

每次遍历出来的元素,保存一个临时变量。

Map每次取出元素都是一个键值对

  • 数组/List
<%     String[] arr = {"aa","bb","cc","dd"};     request.setAttribute("brr",arr);      //需求:Java方式遍历域对象中的数组,展示页面     //1、取出域对象数组     String[] brr = (String[]) pageContext.findAttribute("brr");     //2、遍历     if(brr!=null){         for (String x : brr) {             out.write(x+"<br/>");         }     } %> <hr/> <c:forEach items="${brr}" var="x">     ${x}<br/> </c:forEach> 
  • Map
 <%     Map<String, String> map1 = new LinkedHashMap<String, String>();     map1.put("k1","龙君");     map1.put("k2","荣宇");     map1.put("k3","谢东");     request.setAttribute("mapx",map1);      //需求:Java方式遍历域对象中的map,展示页面     //1、取出域对象map     Map<String, String> mapx = (Map<String, String>) pageContext.findAttribute("mapx");     //2、遍历     //mapx.keySet().for   mapx.entrySet().for     for (Map.Entry<String, String> entry : mapx.entrySet()) {         out.write("key:"+entry.getKey()+"  value:"+entry.getValue()+"<br/>");     } %> <hr/> <c:forEach items="${mapx}" var="entry">     key:${entry.key} value:${entry.value}<br/> </c:forEach> 

小结:1、<c:forEach>遍历map集合使用的是map.entrySet().for,每次遍历出来的元素都是键值对。

${entry.key}

${entry.value}

属性名

说明/示例

varStatus

遍历的状态变量

.index 当前遍历的索引

.count 当前遍历的次数

.first   是否为第一次遍历

.last   是否为最后一次遍历

<%     String[] arr = {"aa","bb","cc","dd"};     request.setAttribute("brr",arr); %>  <hr/> <c:forEach items="${brr}" var="x" varStatus="ss">     元素:${x}     索引:${ss.index}     次数:${ss.count}     判断:是否为第一次遍历:${ss.first}     判断:是否为最后一次遍历:${ss.last}     <br/> </c:forEach> 
`<%     //模拟从servlet传递而来的     String[] arr = {"小张","小王","小关","小霞"};     request.setAttribute("brr",arr); %>  <hr/> <table border="1" width="60%" align="center" cellspacing="0">     <tr>         <th>序号</th>         <th>姓名</th>         <th>性别</th>     </tr>     <%--         性别:只有最后一次遍历是性别女     --%>     <c:forEach items="${brr}" var="x" varStatus="ss">         <tr>             <th>${ss.count}</th>             <th>${x}</th>             <th>                 <c:choose>                     <c:when test="${ss.last}">                         女                     </c:when>                     <c:otherwise>                         男                     </c:otherwise>                 </c:choose>             </th>         </tr>     </c:forEach> </table> 

属性名

说明/示例

begin

循环从哪个索引开始

end

循环到哪个索引结束

step

每次循环完毕,索引加几 (步长)

代码:

<%     String[] arr = {"aa","bb","cc","dd","ee","ff"};     request.setAttribute("brr",arr); %>  <hr/> <c:forEach items="${brr}" var="x" varStatus="ss" begin="1" end="4" step="2">     元素:${x}     索引:${ss.index}     <br/> </c:forEach> 

特殊:没有items属性。

begin+end 可以替代 items

<c:forEach begin="1" end="5" var="aa">     ${aa} </c:forEach>

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

注: 如果本篇有需要改进的地方或错误,欢迎大神们指定一二~~

潇洒哥, 程

关于作者: 潇洒哥

为您推荐