JSTL标签、JSTL自定义

JSTL

  • 概念:(JSTL)JavaServerPage Standard Tag Library:JSP标准标签库。
  • 是开源的JSP标准标签,由Apache组织的Jakarta小组来维护的,版本为JSTL1.2
  • 需要下载两个外部的jar包:jstl.jarstandard.jar
    【网盘链接:https://pan.baidu.com/s/1LhWm2Ezm9FeeN8l4Fe83TQ
    提取码:1111 】
  • 大体上提供三个包:核心(流程控制)、函数(处理String)、格式化(Date Time)。

使用JSTL来代替之前的Java。步骤如下:
1.将两个.jar文件导入项目,可以在工程内web文件夹的WEB-INF文件夹内创建自己的文件夹lib,也可以直接将两个jar文件复制粘贴到tomcat中的lib文件夹。
2.启动idea编辑器:创建一个新的web工程,设置新导入的jstl包关联。3. 创建一个新的JSP:JSP中描述一个头信息,目的是为了告知JSP有新的标签可以用。
<%@ taglib uri="http://java.sun.com/jsp/jstl/xxx" prefix=" "%>

『设置jstl包关联』具体操作如下:

核心标签

  • 导包:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 标签:
    1. <c:out value=" "></c:out> 表示输出语句。可以写字符串,可以写表达式语言。
    2.<c:if test=""></c:if> 表示判断语句,注意没有else,可写表达式语言。
    3.下列类似于Java里面的switch case语句。
<c:choose> 
    <c:when>
    </c:when>
    <c:otherwise>
    </c:otherwise>
</c:choose>

4.<c:forEach></c:forEach> 有几个属性:begin end step varStatus(是一个对象,有个index属性索引)。属性 var表示变量,items表示遍历循环的元素。使用该元素遍历的时候,只能遍历:数组、List集合、Set集合、Iterator、Enumeration。比如:<c:forEach var="xxx" items="${requestScope.Name}"> ${xxx} </c:forEach>
如果是map集合:<c:forEach var="key" item="${requestScope.map.keySet()}"> ${requestScope.map.key}
5. <c:forTokens var="" items="" delims=""></c:forTokens>表示根据什么拆分,类似于Stringsplit方法。属性表示items表示被拆分的信息。delims表示按照什么拆分。var表示变量。

JSTL函数标签库

  • 导包:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  • 作用:用来处理字符串。可以理解为是以前的Java中String类常用的方法。
  • 怎么使用:需要在JSP上进行描述。
  • 通常在业务层已经处理掉了字符的所有信息,通常不怎么使用。
  • 写法与核心标签不太一样。${fn:xxx()}

JSTL格式化标签库

  • 导包:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
  • 用来处理日期,实现格式化。可以理解为是以前的Date类型,SimpleDateFormat。
  • 在JSP内进行描述。
  • 写法与之前的核心标签一样:<fmt:xxx>
    <fmt:formatDate value="${requestScope.date}" pattern="yyyy-MM-dd kk:mm:ss"></fmt:formatDate>

JSTL自定义

  • 深入研究一下JSTL底层实现
  • 目前所见的后缀名有.txtxmltld(类似于xml,用来描述xml的).propertieshtmlcssjs
  • 分两种:自定义函数${fn:xxx{}}、自定义标签<x:xxx>。
  • JSP可以使用标签,自定义函数
    1.自己描述一个类
    2.类中描述自己的方法:方法必须是静态的,方法通常有返回值。
    3.配置一个“说明书”—>xxx.tld。在当前工程下web文件夹中的WEB-INF。
    1)先描述两个重要的东西:uri、short-name
    <tlib-version>1.0</tlib-version> <short-name>myFn</short-name> <uri>http://www.duyiedu.com</uri>
    <function> <name>add</name> <function-class>myfunctions.MyFunctions</function-class> <function-signature>int add(int,int)</function-signature> </function>
    4.在JSP中声明头信息
    <%@ taglib uri="" prefix=""%>
    ${myFn:add()}
  • JSP可以使用标签,自定义标签
    每一个标签都是一个单独的类。
    1.创建一个类(用来描述一个标签)—实现一个Tag接口,重写 方法。
    2.细致的看一下这些方法:
    两组对应的get/set,自己补全,并添加响应的私有属性。
    还有一个单独的release方法,回收对象。
    doStartTag
    doEndTag
    3.在两个方法内添加自己的逻辑。
    4.描述一个“说明书”:
    先描述uri和short-name
    <tlib-version>1.0</tlib-version> <short-name>myTag</short-name> <uri>http://www.muzige.com</uri>
    在描述标签及标签内部的属性
    <tag> <name>out</name> <tag-class>mytag.MyOut</tag-class> <body-content>JSP</body-content> <attribute> <name>value</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag>
    5.创建JSP,声明头信息。

留言:如果对你有帮助,给博主点个免费的赞吧 ~ 创作不易,感谢支持!在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李宸净

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值