JSTL标签详解(4大常用标签与代码示例)

JSTL标签详解(4大常用标签与代码示例)-mikechen

什么是JSTL?

JSP Standard Tag Library,简称JSTL,JSP标准标签库,提供了一系列的标签供开发者在JSP页面中使用,编写各种动态功能。

 

JSTL常用标签?

JSTL一共包含四大标签库:

1.core:核心标签库

核心标签库主要分为如下:

  • 表达式标签:out标签、set标签、remove标签、catch标签;
  • 流程标签:if标签、choose标签、when标签、otherwise标签;
  • 循环标签:forEach标签、forTokens标签;
  • URL标签:import标签、url标签、redirect标签。

详细的作用描述如下:

JSTL标签详解(4大常用标签与代码示例)-mikechen

 

2.fmt:格式化标签库

引用格式化标签库:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

JSTL标签详解(4大常用标签与代码示例)-mikechen

 

3.sql:数据库标签库

JSTL SQL 标签提供了许多操作数据库(MySQL、Oracle、SQL Server 等)的标签。

导入 SQL 标签库的语法如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

JSTL标签详解(4大常用标签与代码示例)-mikechen

 

4.xml:xml标签库

不需要学习了,它过时了。

JSTL标签详解(4大常用标签与代码示例)-mikechen

 

JSTL使用示例

<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<<jsp:useBean id="person" class="com.ftc.test.Person"></jsp:useBean>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>this is index.jsp!</h1>
<hr>


<%
String username = "ftc";
request.setAttribute("username", username);
%>


<c:out value="this is our JSTL firstDemo"></c:out>
<hr>


<input type="text" value="username" id="username" name="username" />
<input type="submit" value="submit" id="submit" name="submit" />


<c:out value="${username}">
</c:out>
<br>
<c:out value="${1+2}"></c:out>
<c:out value="${empty username}"></c:out>
<br>


<c:out value="${name }" default="error"></c:out>
<br>


<!-- 存值到scope (存储一个value的常量到var这么变量中,作用于为scope) -->
<c:set value="today" var="day" scope="session"></c:set>
<c:out value="${day }"></c:out>
<br>


<c:set var="age" scope="application">eleven</c:set>
<c:out value="${age}"></c:out>


<c:set target="${person}" property="name" value="zhangsan"></c:set>
<c:out value="${person.name}"></c:out>




<!-- remove 标签的用法 -->
<c:set var="firstname" value="vlay"></c:set>
<c:out value="${firstname }"></c:out>
<c:set var="lastname" value="wang"></c:set>
<c:remove var="lastname" />
<c:out value="${lastname }"></c:out>
<hr>


<!-- catch标签的用法 -->
<c:catch var="error">
<c:set target="aa" property="bb">asas</c:set>
</c:catch>
<c:out value="${error}"></c:out>


<!-- if标签的用法 -->
<form action="index.jsp" method="post">
<input type="text" name="score" value="${param.score}" /> <input
type="submit" />
</form>


<c:if test="${param.score>=90}" var="result" scope="application">
<c:out value="你的成绩是优秀"></c:out>
<br>
</c:if>
<c:out value="${applicationScope.result}"></c:out>
<hr>


<!-- choose when otherwise标签的使用 -->
<c:choose>
<c:when test="${param.score>=90 && param.score<=100}">
<c:out value="优秀"></c:out>
</c:when>
<c:when test="${param.score>=80 && param.score<90}">
<c:out value="良"></c:out>
</c:when>
<c:when test="${param.score>=70 && param.score<80}">
<c:out value="中等"></c:out>
</c:when>
<c:when test="${param.score>=60 && param.score<70}">
<c:out value="及格"></c:out>
</c:when>
<c:when test="${param.score>=0 && param.score<60}">
<c:out value="不及格"></c:out>
</c:when>
<c:otherwise>
<c:out value="你的输入有误!"></c:out>
</c:otherwise>
</c:choose>


<c:choose>
<c:when test="${param.score==100}">
<c:out value="你是满分"></c:out>
</c:when>
</c:choose>
<br>


<%
List<String> fruits = new ArrayList<String>();
fruits.add("苹果");
fruits.add("橘子");
fruits.add("香蕉");
fruits.add("葡萄");
fruits.add("梨子");
request.setAttribute("fruits", fruits);
%>


<!-- foreach标签的使用 -->
<c:forEach var="fruit" items="${fruits}">
<c:out value="${fruit}"></c:out>
<br>
</c:forEach>
<hr>


<c:forEach var="fruit" items="${fruits}" begin="1" end="3">
<c:out value="${fruit}"></c:out>
<br>
</c:forEach>
<hr>


<c:forEach var="fruit" items="${fruits}" step="2">
<c:out value="${fruit}"></c:out>
<br>
</c:forEach>
<hr>


<c:forEach var="fruit" items="${fruits}" varStatus="fru">
<c:out value="${fruit}的四个属性值"></c:out>
<c:out value="index:${fru.index}"></c:out>
<c:out value="count:${fru.count}"></c:out>
<c:out value="first:${fru.first}"></c:out>
<c:out value="last:${fru.last}"></c:out>
<br>
</c:forEach>
<hr>
</body>
</html>

 

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法