jstl标签的使用方式
一、什么是Jstl
- jstl是:java标准标签库
- jstl的作用:替代jsp中逻辑脚本(for,while,if等)
- 最终目的:使用jstl+el表达式完全替代jsp的脚本
二、使用jstl的准备工作
- 导入jstl的jar包(jdk5.0之后已经jstl库集成)
手动导入的方式就是把jstl的jar包放到lib文件夹下 - 在页面上引入jstl标签库
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- 使用jstl标签
- forEach标签的使用:主要用于循环
格式:<c:forEach items="具体遍历的元素(相当于JAVA中forecah循环里:后面的东西)" var="这里是遍历出的元素的变量名">
例子:foeach循环
第一种:<c:forEach items="${requestScope.map}" var="entry">
//如果通过el表达式去输出内容,一定要通过html标签包裹
<span>${entry.key}</span>
<span>${entry.value.id}</span>
<span>${entry.value.name}</span>
<span>${entry.value.age}</span>
</c:forEach>
第二种:<c:forEach begin="1" end="10" step="2" varStatus="i">
<!-- begin 是开始的数字 end是结束的位置,setp是表示每次增长几 -->
<!-- 判断是否是第一个 -->
${i.first }
<!-- 判断是否是最后一个 -->
${i.last }
<!-- 获取正在执行的位置 -->
${i.index }
</c:forEach>
- forTokens标签的使用:用于切割字符串
<%pageContext.setAttribute("str3", "a-b-c-de"); %>
<c:forTokens items="${str3 }" delims="-" var="s">//按
delims里的内容切割${s }
</c:forTokens>
- set标签的使用:主要用于设置值
第一种用法:赋值<c:set var="String1" value="${fn:split(str,'-') }"> </c:set>
第二种方法,向域中添加数据<c:set var="String1" value="${fn:split(str,'-') }" scope="page"> </c:set>
第三种方法,向域中的对象设置值,前提是域中有这个对象propetry:需要设置的属性,value:需要设置的值,target:需要设置属性的对象<%pageContext.setAttribute("user", new User()); %>
<c:set target="${user }" property="name" value="wangwu"> </c:set>
${user.name}
- if标签:主要用于判断
<%pageContext.setAttribute("str4", "java") ;%>
<c:if test="${str4=='java' }" var="res" scope="session">
${str4 }
</c:if>
${sessionScope.res }
- import标签:引入页面,像是动态包含
方式一:<c:import url="jstl/MyJsp.jsp" scope="page" var="url"></c:import>
${url }
方式二:<c:import url="jstl/MyJsp.jsp"</c:import>
- out标签:主要用于输出值
<%
pageContext.setAttribute("name", "zhansan"); %><c:out value="${name }" default="meimei"></c:out> //default的用处是,如果没有的时候,默认输出
<c:out value="<h1>nihao</h1>" escapeXml="true"></c:out>//true的话就是进行文本输出不带格式
- Redirect标签:重定向标签
<c:redirect context="/Demo7" url="/index.jsp">
<c:param name="name" value="${name }"></c:param>
</c:redirect>
注意:context可以不写,写的话可以添加指向其他的web应用,并且可以通过param携带参数,参数是携带在url连接上的 - url标签:url重写
<c:url value="/jstl/MyJsp.jsp" var="murl" scope="session"> </c:url>
<a href="${murl }">地址</a>