javaWeb-JSTL-1

1 关于JSTL

1.1 JSTL中文叫jsp标准标签库,它是一个jsp标签集合,内部封装jsp应用的通用核心功能
1.2 JSTL支持通用的,结构化的任务,如迭代,条件判断,xml文档操作,国际化标签,SQL标签
1.3 JSTL主要功能是简化jsp页面代码的编写

2 准备工作

1

下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/ 下。

2

JSP页面中引入<%@ taglib prefix=”页面使用的名称” uri=”功能范围的路径”%>

3 核心标签

1 引入核心标签库

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

2 核心标签库的分类

表达式操作 out、set、remove、catch

流程控制 if、choose、when、otherwise

迭代操作 forEach、forTokens

URL操作 import、param、url、redirect

Set标签

<c:set> 主要用来将变量存储至JSP范围中 或是JavaBean的属性或Map对象中

名称说明是否必须写默认值
Value要被存储的值
var存入的变量名称
scopevar变量的JSP范围Page
targetJavaBean或Map对象
property指定target对象的属性
<%--存储值--%>
<c:set var="p1" value="data-c:set" scope="page"></c:set>
var p1 = ${p1}<br>

<c:out>主要用来显示数据的内容

名称说明是否必须写默认值
value需要显示出来的值
default如果value的值为null,则显示default的值
escapeXml是否转换特殊字符,如:<转换成 & lt;True
<%--输出内容--%>
<c:out value="abc"></c:out><br>

<c:remove> 主要负责移除变量

名称说明是否必须写默认值
Var欲移除的变量名称
Scopevar变量的jsp范围Page

<c:if> 主要用于进行if判断,如果为true,则输出标签体中的内容

名称说明是否必须写默认值
Test表达式的结果为true,则执行体内容,false则相反
var如果 用来存储test运算的结果(true或false)
scopeVar变量的JSP范围page
<%--if条件判断--%>
<%
    int age = 18;
    pageContext.setAttribute("my_age", age);
%>
<c:out value="${my_age}"></c:out><br>
<c:if test="${my_age<18}">未成年</c:if>
<c:if test="${my_age>=18}">恭喜你,已经成年了</c:if>
<br>

<c:choose>,<c:when>,<c:otherwise> 作用相当于if-else

名称说明必须默认
test如果表达式的结果为true,则执行体内容,false则相反
<c:choose>
    <c:when test="${number == 1}">
        <p>您选择了数字1</p>
    </c:when>
    <c:when test="${number == 2}">
        <p>您选择了数字2</p>
    </c:when>
    <c:when test="${number == 3}">
        <p>您选择了数字3</p>
    </c:when>
    <c:otherwise>
        <p>您选择了一个无效的数字</p>
    </c:otherwise>
</c:choose>

<c:forEach> 循环控制,它可以将数组,集合(Collection)中的成员循序浏览一遍。

名称说明必须默认值
var用来存放现在指定的成员
items被迭代的集合对象
varStatus用来存放现在指的相关成员信息
begin开始的位置0
end结束的位置最后一个成员
step每次迭代的间隔数1
<%--使用forEach循环输出集合的值--%>
<%
    Set set = new HashSet<>();
    set.add("data-1");
    set.add("data-2");
    set.add("data-3");
    set.add("data-4");
    pageContext.setAttribute("my_set", set);
%>
<c:forEach items = "${my_set}" var = "user_1">
    ${user_1}<br>
</c:forEach>

4 格式化标签

写在前面:使用格式化标签之前,需要先导包

// prefix前缀可以自定义
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

1、fmt:formatDate 作用:将日期类型格式化为指定模式的字符串

属性

value:将要被格式化的数据

pattern:格式化的模式,与SimpleDateFormat的参数设置一样

var:格式化后的字符串所要存放的变量,若不指定var,则会将格式化的结果直接显示在页面

scope:变量存放的域属性空间,默认page

type:其取值为date、time、both,表示给出的value是日期、时间、还是两者都包含,默认是date

2、fmt:parseDate 作用:用于将指定字符串转化为日期类型

<fmt:parseDate value=“${now }” pattern=“yyyy-MM-dd” var=“today”/>

Value服务器获取的时间

Pattern:转换的格式

Var:页面显示的变量

<%--格式化标签的使用--%>
<%
    Date date = new Date();
    pageContext.setAttribute("date", date);
%>
<%--直接输出--%>
${date}<br>
<%--格式化后输出--%>
<fmt:formatDate value="${date}" pattern="yyyy-mm-dd hh:mm:ss"></fmt:formatDate><br>

3、fmt:formatNumber 按照指定格式对数字进行格式化

属性

maxIntegerDigits:整数部分最多的位数

minIntegerDigits:整数部分最少的位数

maxFrctionDigits:小数部分最多的位数

minFrctionDigits:小数部分最少的位数

var:存储格式化结果的变量

scope:var属性的作用域

integerOnly:是否只解析整型数true或者浮点数false

示例代码:
示例1 基本的数字格式化

<fmt:formatNumber value="1234567.89" pattern="#,###.##" />

输出:1,234,567.89

示例2:数字格式化为货币格式

<fmt:formatNumber value="1234567.89" pattern="¤#,###.00" />
//¤是个特殊的货币符号

输出:$1,234,567.89

示例3:百分比格式化

<fmt:formatNumber value="0.9876" pattern="##%" />

输出:99%

示例4:格式化为指定小数位数

<fmt:formatNumber value="1234.5678" pattern="###0.00" />

示例5:负数的格式化

<fmt:formatNumber value="-1234.56" pattern="¤#,###.00;¤-#,###.00" />

输出:$-1,234.56

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值