jstl标签库

下载jar包,我使用的是1.2的jar包,只需要jstl-1.2.jar一个包,添加到项目Web-inf/lib下即可。

Jstl标签库有5个,使用taglib指令引用标签库到jsp页面:
1、    核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
2、    格式标签库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
3、    SQL标签库
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
4、    XML标签库
<%@ taglib prefix="xml" uri="http://java.sun.com/jsp/jstl/xml" %>
5、    函数标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

这里主要讲解核心标签库:
标签    说明
<c:out>    讲表达式的值输出到jsp页面,同<%=变量值 %>
<c:set>    指定范围中定义变量,或为指定的对象设置属性值
<c:remove>    从指定的jsp范围中移除指定的变量
<c:catch>    捕获程序中的异常,相当于java语言中的try…catch
<c:import>    导入站内或其他网站的静态和动态文件到Web页面中
<c:redirect>    将客户端发出的request请求重定向到其他URL服务端
<c:url>    使用正确的URL重写规则构造一个URL
<c:param>    为其他标签提供参数信息,通常与其他标签结合使用
<c:if>    根据不同条件去处理不同的业务,与java语言中的if语句类似,只不过该语句没有else标签
<c:choose>、<c:when>、<c:otherwise>    根据不同的条件去完成指定的业务逻辑,如果没有符合的条件,则会执行默认条件的业务逻辑,相当于java语言中的switch语句
<c:forEach>    根据循环条件,遍历数组和集合类中的所有或部分数据
<c:forTokens>    迭代字符串中有分隔符分隔的各成员

1、    <c:out>标签
<c:out value="水平线" escapeXml="true"  default="yes"></c:out>
    Value:输出字符串或变量,可以使用EL。
    EscapeXml:设置是否转换特殊符号。
    Default:默认值。
字符    字符符号
<    &lt;
‘    &#039;
&    &amp;
>    &gt;
“    &#034

2、    <c:set>标签
设置单个变量
<c:set var="" value=""  scope=""></c:set>
设置集合变量
<c:set target=""  property=""></c:set>
Var:用于指定变量名。通过该标签定义的变量名,可以通过EL指定为<c:out>的value属性的值。
Value:用于指定变量值,可以使用EL。
Scope:用于指定变量的作用域。默认page。可选page、request、session或application。
Target:用于指定变量存储值或标签体的对象,可以是javaBean或Map集合对象。
Property:用于指定目标对象存储数据的属性名。
3、    <c:remove>变量移除标签
 <c:remove var="" scope=""/>
4、    <c:catch>捕捉异常标签
<c:catch var="异常变量名"/>

5、    <c:import>导入标签
<c:import  url=""  context=""  var=""  scope=""  varReader="" charEncoding=""></c:import>
url:用于指定被导入的文件资源的URL地址。需要注意的是,如果指定的url属性为null或者无效,将抛出“java.servlet.ServletException”异常。
Context:上下文路径,用于访问同一个服务器的其他Web应用,其值必须以“/”开头,如果指定了该属性,那么url属性值也必须以“/”开头。
Var:用于指定变量名称。该变量用于以String类存储获取的资源。
Scope:用于指定变量的存在范围,默认值为page,可选有page、request、session或application。
varReader:用于指定一个变量名,该变量用于以Reader类型存储被包含文件内容。
charEncoding:指定被导入文件的编码格式。
6、    <c:url>动态生成URL标签
<c:url value="" var="" scope="" context=""></c:url>
Context:上下文路径,用于访问同一个服务器的其他Web应用,其值必须以“/”开头,如果指定了该属性,那么url属性值也必须以“/”开头。
Var:用于指定变量名称。该变量用于以String类存储获取的资源。
Scope:用于指定变量的存在范围,默认值为page,可选有page、request、session或application。
Value:指定要连接的URL。
7、    <c:redirect>重定向标签
<c:redirect url="" context=""></c:redirect>
url:用于指定被导入的文件资源的URL地址。需要注意的是,如果指定的url属性为null或者无效,将抛出“java.servlet.ServletException”异常。
Context:上下文路径,用于访问同一个服务器的其他Web应用,其值必须以“/”开头,如果指定了该属性,那么url属性值也必须以“/”开头。
8、    <c:param>传递参数标签
<c:param name="" value=""></c:param>
Name:参数的名称。
Value:参数的值。
9、    <c:if>条件判断标签
<c:if test="" var="" scope=""></c:if>
Test:if的判断条件。
Var:判断条件返回的结果。
Scope:用于指定变量的存在范围,默认值为page,可选有page、request、session或application。
10、    <c:choose>条件选择标签
<c:choose>
<c:when test="条件1">结果1</c:when>
<c:when test="条件2">结果2</c:when>
<c:when test="条件3">结果3</c:when>
<c:otherwise>其他结果</c:otherwise>
</c:choose>
11、    <c:forEach>循环标签

<c:forEach var="" items="" begin=""  end="" step="" varStatus="">
循环体
</c:forEach>
属性    说明
Items    用于指定被循环遍历的对象,多用于数组和结合类。该属性的属性值可以是数组、集合类、字符串和枚举类型,并且可以通过EL进行指定。
Var    用于指定循环体的变量名,该变量用于存储items指定的对象的成员。
Begin    用于指定循环的起始位置,如果没有指定,则从集合的第一个值开始迭代,可以使用EL。
End    用于指定循环的结束位置,如果没有指定,则一直迭代到集合的最后一位。
Step    用于指定循环的步长。
varStatus    用于指定循环的状态变量,给属性有4个状态。

VarStatus状态:
变量    类型    描述
index    int    当前循环索引值。
Count    Int    当前循环的计数,从1开始。
First    Boolean    是否为第一次循环。
Last    Boolean    是否为最后一次循环。

12、    <c:forTokens>迭代标签
 
<c:forTokens items="" delims="" begin=""  end="" step="" var="" varStatus=""> 
迭代体
</c:forTokens>
属性    说明
Items    用于指定被循环遍历的对象,多用于数组和结合类。该属性的属性值可以是数组、集合类、字符串和枚举类型,并且可以通过EL进行指定。
delims    用于指定分隔符字符串的分隔符,可以同时使用多个分隔符。
Var    用于指定循环体的变量名,该变量用于存储items指定的对象的成员。
Begin    用于指定循环的起始位置,如果没有指定,则从集合的第一个值开始迭代,可以使用EL。
End    用于指定循环的结束位置,如果没有指定,则一直迭代到集合的最后一位。
Step    用于指定循环的步长。
varStatus    用于指定循环的状态变量,给属性有4个状态。
原文地址:https://www.cnblogs.com/gynbk/p/6556296.html