Java学习笔记day40

JSTL

简介

全称:JSP Standard Tag Library

中文名:JSP标准标签库

作用:用于扩展JSP中的标签,能够为JSP页面提供流程控制、类型转换等功能的标签。替换JSP中代码脚本

组成:

功能范围URL前缀
核心标签库http://java.sun.com/jsp/jstl/corec
格式化http://java.sun.com/jsp/jstl/fmtfmt
函数http://java.sun.com/jsp/jstl/functionsfn
数据库(不使用)http://java.sun.com/jsp/jstl/sqlsql
XML(不使用)http://java.sun.com/jsp/jstl/xmlx

taglib指令引入标签库

作用:引入其他网络标签库,类似于导包

<%@ taglib prefix="前缀" uri="URL" %>

使用步骤

1.导入jstl-1.2.jarstandard-1.1.2.jar

2.引入标签库,可以自动引入

3.使用

code核心库使用

<c:set />

作用:可以给域中保存数据

属性:

​ scope:设置保存在哪个域

​ page 表示 PageContext域,默认值

​ request表示Request域

​ session表示Session域

​ application表示ServletContext域

​ var:键

​ value:值

语法:<c:set scope=“page” var=“” value=“” />

示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
	<c:set var="key" value="pageContext" />
	<c:set scope="request" var="key" value="request" />
	
	${pageScope.key}
	<hr />
	${requestScope.key}
</body>
</html>

<c:if />

作用:判断

属性:

​ test:判断条件(使用EL表达式)

语法:<c:if test="条件">true时执行</c:if>

注意:没有else

示例

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
	<c:set scope="request" var="age" value="17"/>
    <c:if test="${requestScope.age >= 18}">
        <h3>已成年,可以判刑</h3>
    </c:if>
    <c:if test="${requestScope.age < 18}">
        <h3>未成年,少管所</h3>
    </c:if>
</body>
</html>

<c:choose>

choose开始判断

when:一种判断情况,类似于else if或if

​ 属性:

​ test:当前判断条件

​ otherwise:类似于else

注意:

​ 1.when只要有一个成立就不会判断其他条件

​ 2.标签中不能使用html注释,可以使用jsp注释

​ 3.when的父标签必须是choose标签

示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
 <c:set scope="request" var="score" value="80"/>
 <c:choose>
     <c:when test="${requestScope.score > 100 || requestScope.score<0}">
         <h3>成绩有误</h3>
     </c:when>
     <c:when test="${requestScope.score >= 85}">
         <h3>A</h3>
     </c:when>
     <c:when test="${requestScope.score >= 70}">
         <h3>B</h3>
     </c:when>
     <c:when test="${requestScope.score >= 60}">
         <h3>C</h3>
     </c:when>
     <c:otherwise>
         <h3>D</h3>
     </c:otherwise>
 </c:choose>
</body>
</html>

<c:forEach>

作用:遍历

属性:

​ var:遍历出的数据

​ begin:开始

​ end:结束

​ items:遍历的数据源

​ step 指定元素的间隔个数(默认为1,依次取出所有元素)

语法:

<c:forEach var="遍历的变量" begin="开始位置" end="结束位置">
</c:forEach>

示例一:简单的遍历

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
 <%--
     for (int i = 0; i <= 10; i++) { }
 --%>
 <c:forEach var="i" begin="0" end="10">
     ${i}
     <hr />
 </c:forEach>
</body>
</html>

示例二:遍历数组

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
 <%
     String[] names = {"德玛","蛮王","寒冰","剑圣"};
     request.setAttribute("list",names);
 %>
 <table border="1" cellspacing="0" width="200px">
     <tr>
         <td>姓名</td>
     </tr>
     <c:forEach items="${requestScope.list}" var="name">
         <tr>
             <td>${name}</td>
         </tr>
     </c:forEach>
 </table>
</body>
</html>

示例三:遍历集合

<%@ page import="java.util.ArrayList" %>
<%@ page import="bean.User" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
<%
 ArrayList<User> strings = new ArrayList<>();
 strings.add(new User("蛮王"));
 strings.add(new User("德玛"));
 strings.add(new User("剑圣"));
 request.setAttribute("list",strings);
%>
<table border="1" cellspacing="0" width="200px">
 <tr>
     <td>姓名</td>
 </tr>
 <c:forEach items="${requestScope.list}" var="u">
     <tr>
         <td>${u.name}</td>
     </tr>
 </c:forEach>
</table>
</body>
</html>

示例四:遍历字典

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
 <%
     HashMap<String, Integer> map = new HashMap<>();
     map.put("德玛",28);
     map.put("蛮王",18);
     map.put("剑圣",58);
     request.setAttribute("map",map);
 %>
 <table border="1" cellspacing="0" width="200px">
     <tr>
         <td>姓名</td>
         <td>年龄</td>
     </tr>
     <c:forEach items="${requestScope.map}" var="entry">
         <tr>
             <td>${entry.key}</td>
             <td>${entry.value}</td>
         </tr>
     </c:forEach>
 </table>
</body>
</html>

fmt格式化

<fmt:formatNumber />

作用:格式化数字

属性:

​ value:值

​ pattern:格式

​ #:忽略前后0

​ 0:小数点后一位数字

​ .:小数符号

​ type:类型

​ 1.number:数字,默认保留三位

​ 2.currency:货币,保存到分,符号跟随当前系统

​ 3.percent:百分比,原数值*100舍去小数位

示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
</head>
<body>
 <%
     request.setAttribute("num",13.14159265354);
 %>
 <%-- 注意默认四舍五入 --%>
 保留两位小数:<fmt:formatNumber value="${requestScope.num}" pattern="#.00"/>
 <%--保留两位小数:13.14--%>
 <hr />
 <%--
     type:类型
         number:数字,默认保留三位小数(四舍五入)
         currency:货币,保存到分,符号跟随当前系统
         percent:百分比,原数值*100舍去小数位
 --%>
 <fmt:formatNumber value="${requestScope.num}" type="number"/>
 <%--13.142--%>
 <br />
 <fmt:formatNumber value="${requestScope.num}" type="currency"/>
 <%--¥13.14--%>
 <br />
 <fmt:formatNumber value="${requestScope.num}" type="percent"/>
 <%--1,314%--%>
 <br />
</body>
</html>

<fmt:formatDate />

作用:格式化时间

属性:

​ value:值

​ pattern:格式

示例

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
  request.setAttribute("date",new Date());
%>
<fmt:formatDate value="${requestScope.date}" pattern="yyyy-MM-dd HH:mm:ss"/>
<%--2022-11-18 19:54:00--%>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值