JavaWeb——JSTL标签库
1、JSTL标签库
JSTL标签库:全称是JSP Standard Tag Library JSP标签库,是一个不断完善的开放源代码的JSP标签库
EL表达式主要是为了替换jsp中的表达式脚本,而标签库则是为了替换代码脚本,这样使得整个jsp页面变得更加简洁
1.1、JSTL的安装
- jstl jar包的下载
jar包下载 - 导入jar包
- 有代码提示就是导好了
1.2、JSTL的使用
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.Map" %>
<%@ page import="bean.Person" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="/2.jsp" %>
<html>
<head>
<title>这是一个jsp页面</title>
</head>
<body>
<%--1.set保存数据的方式
域对象.setAttribute(key,value);
scope 属性设置保存到哪个域中
page表示pageContext(默认值)
request表示Request域
session表示Session域
appliction表示ServletContext域
var设置key
value设置value
--%>
保存之前:${pageScope.dcd}<br>
<c:set scope="page" var="dcd" value="np"/>
保存之后:${pageScope.dcd}<br>
<%--2.if标签
test属性表示判断的条件(使用EL表达式输出)
没有if-else的写法,要写的话只能使用多个if语句进行表示
--%>
<c:if test="${12==12}">
<h1>12==12</h1>
</c:if>
<%--3.多路判断
choose标签开始选择判断
when标签表示每一种判断情况
test表示判断条件
注意:
注释使用的是jsp注释
如果想要在otherwise里面使用when标签,一定要加上<c:choose>
--%>
<%
request.setAttribute("height",165);
%>
<c:choose>
<c:when test="${requestScope.height>180}">
<h1>很高高</h1>
</c:when>
<c:when test="${requestScope.height>170}">
<h1>还行</h1>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${requestScope.height>160}">
<h1>大于160</h1>
</c:when>
</c:choose>
</c:otherwise>
</c:choose>
<%--4.foreach遍历
begin:设置开始的索引
end:设置结束的索引
step:表示步长值
var:表示遍历的变量
varStatus:表示当前遍历到的数据的状态
--%>
<c:forEach begin="1" end="100" var="i">
${i}<br>
</c:forEach>
<%--5.遍历Object数组
items表示遍历的数据源(遍历的数据)
--%>
<%
request.setAttribute("arr",new String[]{"1236546","89782313"});
%>
<c:forEach items="${requestScope.arr}" var="item">
${item}<br>
</c:forEach>
<%--6.遍历map
--%>
<%
HashMap<String, Object> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
// for(Map.Entry<String,Object> entry:map.entrySet()){}
request.setAttribute("map",map);
%>
<c:forEach items="${requestScope.map}" var="entry">
${entry.key}
${entry.value}<br>
</c:forEach>
</body>
</html>
status中的一些方法