JSTL知识详解笔记

1.JSTL简介:

1.1为什么学习JSTL?

EL表达式只能代替JSP中的表达式,需要使用JSTL代替JSP中的脚本。

1.2JSTL全称:

JSP Standard Tag Library,JSP标准标签库

1.3JSTL作用:

  • JSTL主要用于代替JSP中的脚本代码,提高JSP页面代码的可读性
  • JSTL是以类似【HTML标签】的形式,书写java代码

1.4JSTL组成:

JSTL共有5组不同功能的标签库,需要重点掌握3种:

  • 核心标签库
    –<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  • 格式化标签库
    –<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>`
  • 函数库
    – <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

2.JSTL使用步骤

2.1先引入JSTL的jar包,到WEB-INF下:

  • taglibs-standard-impl-1.2.1.jar
  • taglibs-standard-spec-1.2.1.jar

2.2再使用taglib指令,引入需要的功能标签库

  • 如:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • prefix:指定标签库前缀
  • uri:指定标签库路径

2.3使用JSTL标签

3.JSTL常用标签

3.1核心标签库

  • <c:set>标签
    –作用:<c:set>标签用于添加、修改域中的属性
  • 属性
    –scope是那个作用域
    –var是属性名
    –value是属性值
    –target是要修改的目标对象
    –property是要修改或添加的属性名
  • 示例代码:
<%--声明变量--%>
<c:set scope="" var="" value=""></c:set>
<%--修改属性值--%>
<c:set target="" property="" value=""></c:set>
  • <c:out>标签
    – 作用:<c:out>用于计算一个表达式,并将结果输出到当前页面。功能类似于JSP表达式:<%=%>和EL表达式:${}
    – 属性
属性作用参数类型
defaut当value为null时显示的默认值Object
escaXml是否对特殊字符进行转义boolean

–实例代码

<c:out value="${requestScope.stuName2}" default="stuName2 is null!"></c:out>
<c:set value="<a href='#'>超链接</a>" var="temp"></c:set>
<c:out value="${pageScope.temp}" escapeXml="false"></c:out>
  • <c:if>标签
    –作用:<c:if>标签,判断表达式的值,如果表达式的值为true,则执行其主体内容
    –属性:
属性描述是否必要默认值
test条件
var用于存储条件结果的变量
scopevar属性的作用域page

–示例代码

<c:set var="yOn" value="true"></c:set>
<c:if test="${pageScope.yOn == true}" var="bool" scope="request">
    正在听课!
</c:if>
  • <c:choose> <c:when> <c:otherwise>标签(常用)
    –属性
    test属性:条件判断,返回boolean类型
    –示例代码:
<c:set var="age" value="88" scope="request"></c:set>
<c:choose>
    <c:when test="${requestScope.age < 18}">
        未成年
    </c:when>
    <c:when test="${requestScope.age>=18 and requestScope.age<30}">
        青年
    </c:when>
    <c:when test="${requestScope.age>=30 and requestScope.age<60}">
        中年
    </c:when>
    <c:when test="${requestScope.age>=60 and requestScope.age<80}">
        中老年
    </c:when>
    <c:otherwise>
        老年
    </c:otherwise>
</c:choose>
  • <c:forEach>标签
    –作用:<c:forEach>标签是迭代一个集合的对象,可以是数组,也可以是list,也可以是map对象。
    –属性:
属性描述是否必要默认值
items要被循环的数据集合-可以使用el表达式
begin开始的索引(0=第一个元素,1=第二个元素)0
end最后一个索引(0=第一个元素,1=第二个元素)Last element
step每一次迭代的步长1
var代表当前条目的变量名称
varStatus代表循环状态的变量名称

–示例代码

<%--普通循环--%>
<c:forEach var="i" begin="1" end="10" step="2">
    ${i}&nbsp;
</c:forEach>
<%--增强循环--%>
<%
    List<Student> list = new ArrayList<Student>();
    list.add(new Student(10001,"zijian"));
    list.add(new Student(10002,"yafei"));
    list.add(new Student(10003,"zhiyuan"));
    list.add(new Student(10004,"admin"));
    request.setAttribute("list",list);
%>
<c:forEach items="${requestScope.list}" var="stu">
    ${stu.id} &emsp; ${stu.name2}<br>
</c:forEach>

3.2其他标签库orh函数库

  • 格式化标签库值fmt
    –作用:格式化数据,如日期、数字等
    –属性:
    —value:格式化数据
    —pattern:格式化否则
    –示例代码:
<%
    Date date = new Date();
    request.setAttribute("date",date);
%>
<fmt:formatDate value="${requestScope.date}" pattern="yyyy-MM-dd hh:mm:ss"></fmt:formatDate>
  • 函数库
    –作用:类似java中String作用
    –示例代码:
${fn:contains("HEllo", "he")}
结果:false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值