打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JSP--JSTL标签库举例 详解

JSTL概述

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。

JSTL标准标签库有5个子库,但随着发展,目前常使用的是它的核心库。

标签库标签库的URI前缀
Corehttp://java.sun.com/jsp/jstl/corec
I18Nhttp://java.sun.com/jsp/jstl/fmtfmt
SQLhttp://java.sun.com/jsp/jstl/sqlsql
XMLhttp://java.sun.com/jsp/jstl/xmlx
Functionshttp://java.sun.com/jsp/jstl/functionsfn

JSTL下载与导入

JSTL下载:
从Apache的网站下载JSTL的JAR包。进入 “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包 进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于 实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)

JSTL导入:
将两个jar包导入我们工程的lib中,使用jsp的taglib指令导入核心标签库。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

JSTL核心库的常用标签

标签描述
<c:out>用于在JSP中显示数据,就像<%= … >
<c:set>用户保存数据
<c:remove>用于删除数据
<c:catch>用来处理产生错误的异常状况,并且将错误信息存储起来
<c:if>与我们在一般程序中用的if一样
<c:choose>本身只当作<c:when>he <c:otherwise>的父标签
<c:when><c:choose>的子标签,用来判断条件是否成立
<c:otherwise><c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>检索一个绝对或相对URL,然后将其内容暴露给页面
<c:forEach>基础迭代标签,接收多种集合类型
<c:forTokens>根据指定的分隔符来分隔内容并迭代输出
<c:param>用来给包含或重定向的页面传递参数
<c:redirect>重定向至一个新的URL
<c:url>使用可选的查询参数来创造一个URL
基础标签<c:out>:

<c:out value=“数据” default=“默认值”></c:out>
数据可以为常量值也可以是EL表达式
作用:将数据输出给客户端。

	<%		request.setAttribute("str", "字符串");	%>	<h3>c:out</h3>	<c:out value="哈哈"></c:out><br/>	<c:out value="${str }" default="默认值"></c:out>

页面显示:

基础标签c:set 和 c:remove 标签:
  • <c:set var=“键名” value=“数据” scope=“域”></c:set>
    作用:存储数据到作用域对象中
    var:表示存储的键名
    value:表示存储的数据
    scope:表示要存储的作用域对象page、request、session、application

  • <c:remove var=“键名” scope=“域”/>
    作用:删除作用域中的指定键的数据
    var:表示要删除的键的名字
    scope:表示要删除的作用域(可选)
    注意:如果不指定作用域的情况使用该标签删除数据,会将四个作用域对象中的符合要求的数据全部删除。

	<h3>c:set</h3>	<c:set var="hello" value="hello pageContext" scope="page"></c:set> 	<c:set var="hello" value="hello request" scope="request"></c:set> 	<c:set var="hello" value="hello session" scope="session"></c:set> 	<c:set var="hello" value="hello application" scope="application"></c:set> 	<c:out value="${pageScope.hello}"></c:out> 	 	<h3>c:remove</h3> 	<%-- 删除page域中的 --%> 	<c:remove var="hello" scope="page"/><br/> 	<c:out value="${hello}"></c:out>

页面显示:

逻辑标签<c:if> 和 <c:choose>:
 <c:if test="${表达式}">	前端代码 </c:if>

作用:进行逻辑判断,相当于java代码的但分支判断
注意:逻辑判断标签需要依赖于EL的逻辑运算,也就是表达式中涉及到数据必须从作用域中获取。

<c:choose>	<c:when test="">执行内容</c:when>	<c:when test="">执行内容</c:when>	.....	<c:otherwise>执行内容</c:otherwise></c:choose>

作用:用来进行多条的逻辑判断,类似java中的多分支语句
注意:条件成立只会执行一次,都不成立则执行otherwise

	<h3>c:if</h3>	<c:set var="a" value="4"></c:set> 	<c:if test="${a > 3}"> 		<b>今天天气真好</b> 	</c:if> 	 	<h3>c:choose</h3> 	<c:set var="score" value="85"></c:set> 	<c:choose> 	<c:when test="${score>=90 }"> 		<i>奖励900元</i> 	</c:when> 	<c:when test="${score>=80 && score < 90 }"> 		<i>奖励800元</i> 	</c:when> 	<c:when test="${score>=70 && score < 80 }"> 		<i>奖励700元</i> 	</c:when> 	<c:otherwise> 		<i>挨顿毒打</i> 	</c:otherwise> </c:choose>

页面显示:

循环标签<c:forEach>:
 <c:forEach begin="" end="" step="" varStatus="">	循环体</c:forEach>

作用:循环内容进行处理
使用:begin:声明循环开始位置
end:循环结束位置
step:步长
varStatus:声明变量记录每次循环的数据(下标,次数,是否是第一次循环,是否是最后一次循环)
$ {vs.index} – $ {vs.count} – $ {vs.first} – ${vs.last }
注意:数据存储在作用域中,需要使用EL表达式。
items:声明要遍历的对象。结合EL表达式获取对象。
var:声明变量记录每次循环的结果。存储在作用域中,需要使用EL表达式获取。

<h3>常量循环</h3>	<c:forEach begin="0" end="4" step="1" varStatus="vs"> 		${vs.index}--${vs.count}--${vs.first}--${vs.last }<br/> 	</c:forEach> 	 	<h3>动态循环</h3> 	<%	 	ArrayList<String> list = new ArrayList<String>();	 	list.add("a");	 	list.add("b");	 	list.add("c");	 	list.add("d");	 	request.setAttribute("list", list); 	%> 	<c:forEach items="${list}" var="str"> 		${str}<br/> 	</c:forEach> 	 	<h3>遍历map</h3> 	<%	 	HashMap<String,String> map = new HashMap<String,String>();	 	map.put("一","哈哈");	 	map.put("二", "嘿嘿");	 	request.setAttribute("map", map); 	%> 	<c:forEach items="${map }" var="m"> 		${m.key }--${m.value }<br/> 	</c:forEach> 	 	<h3>创建表格</h3> 	<table border="1px"> 	<tr> 		<td>课程名称</td> 		<td>教师</td> 		<td>价格</td> 		<td>重要性</td> 	</tr> 	<c:forEach items="${list }" var="str"> 		<tr> 			<td>${str }</td> 			<td>${str }</td> 			<td>${str }</td> 			<td>${str }</td> 		</tr> 	</c:forEach> </table>

页面显示:

来源:https://www.icode9.com/content-4-442701.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JSTL详解
零点代码JSP教程十三之EL表达式和JSTL的综合-问查网(www.vvcha.cn)
JSTL SQL标签库 使用
JSTL标签详细教程之
JSTL 核心标签库 使用
JSP页面中c标签使用 - Designer & Developer - JavaEye技...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服