下载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:默认值。 字符 字符符号 < < ‘ ' & & > > “ " 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个状态。