JSP中许多自定义的标签库,已经由JCP的成员Apache定义好并已经打包。我们只需要导入该JAR包后,在页面中使用taglib指令将其导入即可使用。这套标签库称为JSTL(JSP Standard Tag libarary)即JSP标准标签库
上面是对JSTL简单了解,该博客主要写关于核心标签库,ok,先看下目录
将以上两个jar包导入后,可以在standard.jar下的META-INF可以找到c.tld,在c.tld中都是核心标签库的自定义标签
使用JSTL核心标签库,需要在页面中通过taglib指令,将标签库导入
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
用于进行变量定义,并将变量存放到指定域属性空间,为Bean的属性赋值,设置Map的key与value
Beantest.java
package linjie.com;
public class Beantest{
private String name;
private int age;
public Beantest() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="linjie.com.Beantest"
import="java.util.*"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
name=${requestScope.name }
------------------------------
<%
Beantest be=new Beantest();
pageContext.setAttribute("be", be);
%>
name=${be.name }
------------------------------
<%
Map map=new HashMap();
pageContext.setAttribute("map", map);
%>
map=${map }
name=${map.name }
age=${map.age }
客户浏览器显示结果
从域属性空间中删除指定变量
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
删除指定域空间中的指定变量
name_request=${requestScope.name }
name_page=${pageScope.name }
name_session=${sessionScope.name }
name_application=${applicationScope.name }
-----------------------------
删除所有域中的属性值
name_request=${requestScope.name }
name_page=${pageScope.name }
name_session=${sessionScope.name }
name_application=${applicationScope.name }
客户浏览器显示结果
获取异常信息
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
<%
int i=3/0;
%>
ex=${ex.message }
客户浏览器显示结果异常
用于在页面上输出EL表达式的值
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
name1=
name2=
name3=${name }
客户浏览器显示结果
可以控制是否解析HTML标签,还可以设定初始值(如下)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
name=
name=${empty name ? 'linjie' : name }
客户浏览器显示结果
用于实现对于条件的判断
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
成功执行...
客户浏览器显示结果
进行选择
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
首页 上一页 下一页 尾页
首页 上一页 下一页 尾页
首页 上一页 下一页 尾页
首页 上一页 下一页 尾页
客户浏览器显示结果
用于循环遍历数组、list、set、map集合
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
-----------遍历list-------------
<%
List names=new ArrayList();
names.add("林杰");
names.add("linjie");
pageContext.setAttribute("names",names);
%>
${name }
-----------遍历set-------------
<%
Set schools=new HashSet();
schools.add("浙大");
schools.add("北大");
pageContext.setAttribute("schools", schools);
%>
${school }
-----------遍历map------------
<%
Map maps=new HashMap();
maps.put("name", "林杰");
maps.put("address", "浙江");
pageContext.setAttribute("maps", maps);
%>
${map }
------------遍历数组 int[]
<%
int[] ages={20,21,22};
pageContext.setAttribute("ages", ages);
%>
${age }
客户浏览器显示结果
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
<%
List names=new ArrayList();
names.add("林杰");
names.add("linjie");
names.add("luxy");
names.add("king");
names.add("bbbb");
pageContext.setAttribute("names",names);
%>
${name }
---------------------------------
${num }
客户浏览器显示结果
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
import="linjie.com.*"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Insert title here
<%
List be=new ArrayList();
be.add(new Beantest("林杰",20));
be.add(new Beantest("aa",21));
be.add(new Beantest("bb",22));
be.add(new Beantest("cc",23));
pageContext.setAttribute("be", be);
%>
序号
姓名
年龄
${vs.count }
${b.name }
${b.age }
客户浏览器显示结果