使用JSTL步骤+常用的核心标签
Posted a box of Sweets
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JSTL步骤+常用的核心标签相关的知识,希望对你有一定的参考价值。
- JSTL是一个不断完善的开放源代码的JSP标签库,他是由APAche的jakrta小组来维护的。他提供4个主要的标签库,包括核心标签库、国际化与格式化标签库、SQL标签库和XML标签库。
- jar的下载可以去apache网址下,也可以在点击这里下载
一、使用JSTL配置步骤
要使用它,则需要配置:以下配置是基于环境JDK1.8+eclipse+tomcat9.0下进行的演示步骤:
第一步:引用jar包
两个包jstl.jar和standard.jar拷贝在lib下面:
第二步:使用函数标签库的taglib指令在jsp页面上引入所需要的标签(常用的是core的核心标签库)
第三步:使用JSTL标签
二、常用的核心标签
1、<c:out>标签
<c:out value="value" [default="defaultValue"]
[escapeXml="true|false"]/>
案例:index.jsp页面
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<c:out value="Hello World!"></c:out>
</body>
</html>
运行结果:
2、 <c:remove>移除标签
<c:remove>标签用于移除指定的JSP范围内的变量,其语法格式如下:
<c:remove var="name" [scope=”范围”]/>
3、流程控制标签
1)<c:if>标签:
在程序开发中,经常需要使用if语句进行条件判断,如果要在JSP页面中进行条件判断,就需要使用Core标签库提供的<c:if>标签,该标签专门用于完成JSP页面中的条件判断,
语法:
<c:if test="testCondition" var="result"
[scope="page|request|session|application"]/>
在<c:if>标签格式中,可以看到<c:if>标签有三个属性,下面对这三个属性分别进行讲解。
test属性用于设置逻辑表达式。
var属性用于指定逻辑表达式中变量的名字。
scope属性用于指定var变量的作用范围,默认值为page。
案例:根据值判断是周几
<%@ page language="java" contentType="text/html; charset=utf-8"
import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<c:set value="1" var="week" property="week" />
<c:if test="$week==1 ">
周一
</c:if>
<c:if test="$week==2 ">
周二
</c:if>
</body>
</html>
结果:
2)<c:choose>、<c:when>和<c:otherwise>标签 :等同于java中的if。。。else if 。。。 else
<c:choose>标签没有属性,在它的标签体中只能嵌套一个或多个<c:when>标签,零个或一个<c:otherwise>标签,并且同一个<c:choose>标签中所有的<c:when>子标签必须出现在<c:otherwise>子标签之前,其语法格式如下:
<c:choose>
Body content(<when> and <otherwise> subtags) </c:choose>
案例:
<%@ page language="java" contentType="text/html; charset=utf-8"
import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<h1>从请求参数中获取day的参数值,如果是6或者7,输出周末,
否则输出工作日</h1>
<c:choose>
<c:when test="$param.day==6||param.day==7">
周末
</c:when>
<c:otherwise>
工作日
</c:otherwise>
</c:choose>
</body>
</html>
结果:
4、循环标签
<c:forEach>标签:标签专门用于迭代集合对象中的元素,如Set、List、Map、数组等,并且能重复执行标签体中的内容。
语法:迭代包含多个对象的集合
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]
[begin="begin"] [end="end"] [step="step"]>
body content
</c:forEach>
var属性:用于将当前迭代到的元素保存到page域中的名称。
items属性:用于指定将要迭代的集合对象。
varStatus属性:用于指定将当前迭代状态信息的对象保存到page域中的名称。
begin属性:用于指定从集合中第几个元素开始进行迭代,begin的索引值从0开始,
如果没有指定items属性,就从begin指定的值开始迭代,直到迭代结束为止。
step属性:用于指定迭代的步长,即迭代因子的增量。
案例:迭代数组和map集合
<%@ page language="java" contentType="text/html; charset=utf-8"
import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<%String[] fruits = "apple", "orange", "banana" ;%>
String数组中的元素:<br>
<c:forEach var="name" items="<%=fruits%>">
$name<br />
</c:forEach>
<% Map map = new HashMap();
map.put("admin", "123");
map.put("admin2", "123");
map.put("admin3", "123"); %>
<hr>
HashMap集合中的元素:<br>
<c:forEach var="entry" items="<%=map%>">
$entry.key $entry.value<br />
</c:forEach>
</body>
</html>
结果:
以上是关于使用JSTL步骤+常用的核心标签的主要内容,如果未能解决你的问题,请参考以下文章