1、jstl标签的基本概述
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样, 也是要放到jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是它的核心库Core
标签库 | 标签库的URL | 前缀 |
---|---|---|
Core | http://java.sun.com/jsp/jstl/core | c |
I18N | http://java.sun.com/jsp/jstl/fmt | fmt |
SQL | http://java.sun.com/jsp/jstl/sql | sql |
XML | http://java.sun.com/jsp/jstl/xml | x |
Functions | http://java.sun.com/jsp/jstl/functions | fn |
2、jstl标签的安装
下载JSTL的JAR包
http://tomcat.apache.org/download-taglibs.cgi
导入jar包
使用taglib指令在jsp页面导入要使用的jstl标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
在jsp书写"<c:",看到如下提示,说明安装成功:
3、常见的jstl标签
jstl的核心标签内容有很多,现在目前还常用的标签只有if、foreach标签。
3.1、if标签
if标签的作用
起到java代码的判断的作用
if标签属性介绍
属性名 | 是否支持EL | 属性类型 | 属性描述 |
---|---|---|---|
test | true | boolean | 决定是否处理标签体中的内容的条件表达式 |
var | false | String | 用于指定将test属性的执行结果保存到某个Web域中的某个属性的名称 |
scope | false | String | 指定将test属性的执行结果保存到哪个Web域中 |
test:判断是否执行标签内的内容(true——执行标签中的内容,false,不执行)。
var:用来保存test属性的结果(使用var属性给他取个名字),这个结果可以保存到指定的web域中, 默认保存在pageContext域。
scope:指定保存数据的到哪个web域。
3.2、forEach标签
forEach标签作用
起到java代码的for循环作用
forEach标签属性介绍
var:在不循环对象的时候,保存的是控制循环的变量;在循环对象的时候,保存的是被循环对象中的元素
items:指定要循环的对象
varStatus:保存了当前循环过程中的信息(循环的开始、结束、步长、次数等)
begin:设置循环的开始
end:设置循环的结束
step:设置步长
if和foreach代码演示
<%@ page import="java.util.List" %>
<%@ page import="com.bdit.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core_1_1" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>jstl</title>
</head>
<body>
<h2>c:if判断语句</h2>
<!--test是判断条件,scope存入那个域中,var将结果赋值给一个变量-->
<c:if test="${5>3}" scope="page" var="one">
<p>如果5>3是true就会输出这句话</p>
</c:if>
${one}
${pageContext.getAttribute("one")}
<c:if test="5>3">
</c:if>
<h2>c:forEach循环</h2>
<!--begin开始的数,end结束的数,step步长,var将结果赋给一个变量-->
<c:forEach begin="1" end="10" step="2" var="two">
${two}
</c:forEach>
<br>
<%
List<Student> list=new ArrayList<>();
list.add(new Student("lisi",18));
list.add(new Student("wangwu",19));
list.add(new Student("xiaoming",20));
pageContext.setAttribute("list",list);
%>
<!--varStatus当前信息保存在那个域中-->
<c:forEach items="${list}" var="three" varStatus="statu">
索引-->${statu.index} 行号-->${statu.count}
${three.name} ${three.age}<br>
</c:forEach>
</body>
</html>