JSTL标签库

JSTL学习

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

作用:提高jsp中的逻辑代码的编写效率,使用标签。

使用:

JSTL的核心标签库

JSTL的格式化标签库

JSTL的SQL标签库

JSTL的函数标签库

JSTL的XML标签库

JSTL的核心标签库

1、导入jar包

standard.jar 和 jstl.jar

下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip 

2、声明jstl标签库的引入(核心标签库)

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

3、内容:

基本内容:

(1)<c:out value="数据" default="默认值"></c:out>

数据可以为常量也可以是EL表达式

作用:将数据输出给客户端

(2)<c:set var="键名" value="数据" scope="page"></c:set>

作用:存储数据到作用域对象中

var:表示存储的键名

value:表示存储的数据

scope:表示要存储的作用域对象 page request session application

(3)<c:remove var="hello" scope="page"></c:remove>

作用:删除作用域中的指定键的数据

var:表示要删除的键的名字

scope:表示要删除的作用域(可不写)

注意:如果不指定作用域的情况使用该标签删除数据,会将四个作用域对象中的符合要求的数据全部删除。

逻辑标签:

(1)

<c:if test="${表达式}">
    前端代码
</c:if>

作用:进行逻辑判断,相当于Java中的但分支判断

注意:逻辑判断标签需要依赖于EL的逻辑运算,也就是表达式中涉及到的数据必须从作用域中获取

(2)

<c:choose>
    <c:when test="">执行内容</c:when>
    ......
    <c:otherwise>执行内容</c:otherwise>
</c:choose>

作用:用来进行多条件的逻辑判断,类似于Java中的多分支语句

注意:条件成立只会执行一次,都不成立则执行otherwise

循环标签:

(1)

<c:forEach begin="1" end="3" step="2" varStatus="i">
    循环体
</c:forEach>

作用:循环内容进行处理

使用:

begin:声明循环开始位置

end:声明循环结束位置

step:设置步长

varStatus:声明遍历记录每次循环的数据(角标,次数,是否是第一次循环,是否是最后一次循环)

注意:数据存储在作用域中,需要使用EL表达式获取

items:声明要遍历的对象。结合EL表达式获取对象

var:声明变量记录每次循环的结果。存储在作用域中,需要使用EL表达式获取。

例:

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: ASUS
  Date: 2020/2/17
  Time: 15:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="a" uri="http://java.sun.com/jsp/jstl/core" %>
<%--基本标签学习--%>
<h3>基本标签学习</h3>
<c:out value="今天天气真好"></c:out></br>
<c:out value="${str}" default="没有str,我是默认值"></c:out></br>

<c:set var="hello" value="我是c:set标签,默认是pageContext"></c:set>
<c:set var="hello" value="我是指定在request里的" scope="request"></c:set>
<c:set var="hello" value="我是指定在session里的" scope="session"></c:set>
<c:set var="hello" value="我是指定在application里的" scope="application"></c:set>

<c:remove var="hello" scope="page"></c:remove>
<c:out value="${hello}"></c:out>
</br><hr/>

<h3>逻辑标签学习</h3>
<a:set var="a" value="4"></a:set>
<c:if test="${a>2}">
    我是if逻辑标签
</c:if>
</br>

<c:set var="score" value="425"></c:set>
<c:choose>
    <c:when test="${score>=425}">
        <b>过六级</b>
    </c:when>
    <c:otherwise>
        <b>奖励再来一次</b>
    </c:otherwise>
</c:choose>
</br><hr/>

<h3>JSTL的循环标签</h3>
<%--常量循环--%>
<c:forEach begin="1" end="3" step="2" varStatus="i">
    正 -- ${i.index} -- ${i.count} -- ${i.first} -- ${i.last}</br>
</c:forEach>
<%--动态循环--%>
<%
    ArrayList<String> list = new ArrayList<String>();
    list.add("1");
    list.add("2");
    list.add("3");
    request.setAttribute("list",list);

    HashMap<String,String> map = new HashMap<String, String>();
    map.put("a","111");
    map.put("b","222");
    map.put("c","333");
    request.setAttribute("map",map);
%>
<c:forEach items="${list}" var="num">
    ${num}</br>
</c:forEach>

<%--遍历map--%>
<c:forEach items="${map}" var="str">
    ${str.key} -- ${str.value}</br>
</c:forEach>

结果:

JSTL的格式化标签库

常用的格式化标签:

<fmt:formatNumber>使用指定的格式或精度格式化数字
<fmt:parseNumber>解析一个代表着数字,货币或百分比的字符串
<fmt:parseDate>

解析一个代表着日期或时间的字符串

<fmt:requestEncoding>设置request的字符编码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值