JSTL标签详细教程之——核心库

JSTL(JSP Standard Tag Library,JSP标准标签库),目前最新版本是1.2,包括四个标签库(core、format、xml、sql),这一篇主要讲解JSTL的核心库即core标签库,核心库标签共有14个,从功能可以分为四大类:逻辑控制、表达式控制、循环判断、URL操作。


一、开发前准备。

1、确保classpath下有standard.jar,jstl.jar。

2、在JSP文件的顶部引入

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3、已掌握EL表达式的基本语法,若未掌握,可以先看这里 EL表达式详细教程 。


二、核心库标签的分类。

表达式类  :out、set、remove、catch

逻辑控制类:if、choose、when、otherwise

循环判断类:forEach、forTokens

URL操作类 :import、url、redirect、param


三、表达式类标签。

1、out标签(向页面输出值)

语法

名称 说明 EL支持 必须 默认值
value 转出的值
escapeXml 是否转义特殊字符和编译html标签 true
default 默认输出的值












2、set标签(给变量赋值)

语法1:设置值到scope范围的变量中

语法2:设置值到JavaBean或Map的属性中

名称 说明 EL支持 必须 默认值
value 要被存储的值
var 存储值的名称
scope 存储值的范围 page
target JavaBean或者java.util.Map的名称
property target对象的属性

说明:target非空时,property不能为空,且target和var同时存在时只有一个生效。

${item1}

2${item2}

2${item3}





${item4}
${user.name}

${map.key}

3、remove标签(与set相反,删除变量)

语法:

名称 说明 EL支持 必须 默认值
var 要删除的变量名
scope 要删除变量的范围 全部



${item} - 
${item}




${item2} - 
${item2}
4、catch标签(捕捉异常,保存异常信息)

语法:

 异常部分 

名称 说明 EL支持 必须 默认值
var 异常信息存储的变量名

	<% int i = 1/0; %>

${ex}


四、逻辑控制类标签。

1、if标签(单一的if判断,没有else)

语法:

条件成立时的输出内容
名称 说明 EL支持 必须 默认值
test 判断条件
var 判断结果存储的变量名
scope 变量的存储范围 page

我是张三
贼九也是张三
var1:${var1} -- var2:${var2}

2、choose、when、otherwise标签(嵌套使用相当于if-elseif-else)

语法:


	
		前面的条件都不成立但此条件成立时输出
	
	
		前面的条件都不成立但此条件成立时输出
	
	......
	
		前面的条件都不成立时才输出
	
名称 说明 EL支持 必须  默认值
test 判断条件 支持


	
	
		刚好
	
	
		很好
	
	
		没考
	


五、循环判断类标签。

1、forEach标签(循环遍历)

语法1:遍历集合,类似(String s : new String[]{"a","b"})


	输出内容

语法2:循环指定次数,类似(int i=0;i<5;i++)

  
	输出内容
forEach参数说明

名称 说明 EL支持 必须 默认值
items 遍历的集合对象
var 每次遍历的对象
varStatus 遍历的相关信息
begin 开始的位置(正数) 0
end 结束的位置(正数) 集合长度
step 遍历的步长(正数) 1
varStatus属性说明

名称 类型 说明
index number 遍历对象的索引,从0开始
count number 总共循环的次数,从1开始
first boolean 本次循环遍历的是否是集合的第一个元素
end boolean 本次循环遍历的是否是集合的最后一个元素
循环指定次数


	第${ii.count}次迭代,索引:${ii.index},值是:${i},是否是第1个:${ii.first},是否是最后 一个:${ii.last}
遍历List

<%
List list = new ArrayList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
request.setAttribute("list",list);
%>

	第${ll.count}次迭代,索引:${ll.index},值是:${l},是否是第1个:${ll.first},是否是最后 一个:${ll.last}
遍历Map

<%
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
request.setAttribute("map",map);
%>

	key:${m.key},value:${m.value}

遍历Set

<%
Set set = new HashSet();
set.add("大");
set.add("坏");
set.add("蛋");
request.setAttribute("set",set);
%>

	${s}

2、forTokens标签(字符串拆分,相当于String的split方法)

语法:


输出内容
参数说明

名称 说明 EL支持 必须 默认值
items 要被拆分的字符串的
delims 用来拆分的字符串
var 保存每次拆分的字符串
varStatus 第次拆分的相关信息
begin 起始位置 0
end 终止位置 被拆分后的长度
step 步长 1
注:var、varStatus、begin、end、step和forEach的参数作用相同


	${i}


五、URL操作类标签。

1、import标签(把其他资源文件引用到本页面,类似jsp:include,区别在于可以引用任意地方的资源,不限于本项目)

语法:
 
	... 
 
名称 说明 EL支持 必须 默认值
url 要引入资源的URL
context URL为相对路径时的根目录 当前项目目录
var 资源文件内容保存对象的名字
scope 保存范围 page
charEncoding 文件编码
varReader 保存导入内容的Java.io.Reader对象

说明:

1、引入的资源文件不限于jsp、html也可是txt等。

2、url可以是绝对路径,也可是相对路径。

3、此操作容易出异常,建议放在中捕获。






${varUrl}


2、url标签(在JSP页面中构造一个URL地址,实现URL重写

语法:param是给url传递参数

 
	...
名称 说明 EL支持 必须 默认值
value 要构造的URL,绝对或相对路径
var 构造好的URL保存的对象名称
context URL为相对路径时的根目录 当前项目目录
scope 保存对象的存储范围 page
c:param 向URL传递参数





${urlName}




	
	

3、redirect标签(重定向到指定URL)

语法:


    ...
名称 说明 EL支持 必须 默认值
url 要重定向的URL地址
context URL为相对路径时的根目录 当前项目目录
param 向URL传递参数

	

4、param标签(与import、url、redirect联合使用)
语法:

与import、url、redirect联合使用,用来传递参数。


JSTL核心库标签的用法基本上都写到了,若各位发现有误的地方,请在评论中评出,多谢!format、xml、sql这三个标签库的讲解也会在接下来的几篇博客中给出。本文的代码下载请点这里

 
 

你可能感兴趣的:(jsp)