学习笔记之 jstl标签库 与 自定义标签库

本文详细介绍了JSTL标签库的核心标签及其用法,包括条件判断、循环遍历等,并探讨了自定义标签及函数的应用场景和技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用袁杰老师上课笔记

1.    课程回顾

1. Jstl 标签库 ,

       核心标签库, c.tld

       国际化与格式化标签库

       数据库标签库

       xml标签库

       函数库

2. 自定义标签

 

Jstl核心标签库中提供了哪些常用标签 ?

       <c:set>    设置值

       <c:out>   输出值

       <c:if>   条件判断

       <c:choose>多重选择

              <c:whentest=””></ when >

              <c:otherwise>

              </otherwise >

       <c:forEach>迭代遍历

       <c:forToken>迭代遍历

 

自定义标签

       技术分类:

              传统标签、

              简单标签

       作用:移除jsp中java代码

       执行原理:

1.      在第一次访问jsp执行到页面自定义标签部分时候,实例化标签处理器类;

2.      把当前jsp的运行环境(pageContext)通过setJspBody(..)方法出入

3.      设置当前标签的父标签

4.      执行标签处理业务方法

5.      服务器停止,回收资源。

 

       使用步骤:

              1.标签处理器类(其实例,在内存中只有一份)

                     继承:SimpleTagSuport , SimpleTag

                     重写:doTag(), 处理所有的标签处理逻辑

              2.标签描述文件, 路径WEB-INF/*.tld

              3.页面引入 (使用taglib指令)

案例:防盗链、开发if、choose、forEach案例!

 

 

2.    Jstl标签库

2.1  格式化(与国际化)标签库

<body>

    <!-- 格式化日期 -->

    <fmt:formatDatevalue="<%=new Date()%>" pattern="yyyy-MM-dd"/><br/>

   

    <!-- 格式化金额:100.00 -->

    <fmt:formatNumbervalue="100.009"pattern="#.##"></fmt:formatNumber>

    <fmt:formatNumbervalue="100.1"pattern="#.##"></fmt:formatNumber>

   

    <!-- 指定格式:小数位不够时候,自动补齐位数 -->

    <fmt:formatNumbervalue="100"pattern="0.00"></fmt:formatNumber>

   

    <!-- 国际化相关标签

    <fmt:bundle basename=""></fmt:bundle>

    <fmt:setLocale value=""/>

    <fmt:message></fmt:message>

     -->

   

  </body>

 

2.2  Jstl函数库

Jsp页面,会涉及到对String字符串的处理, 为了方便处理,jstl标签库提供了函数库,便于对字符串处理!

函数库:处理字符串!

 

系统提供的函数

Jstl标签库,提供的函数库文件, fn.tld

学习方式:

1.      对字符串的处理函数,查看fn.tld文件,看使用说明!

2.      在页面使用:引入jstl函数库(el函数库), 再使用其定义的函数

3.      举例

 

<body>

  <!-- 1. contains, 查找字符串在目标字符串中是否出现 -->

  ${fn:contains('abc', 'c')}  <!-- true -->

  ${fn:contains('abc', 'd')}  <!-- false -->

 

  <!-- 2. 忽略xml也就是原样显示xml标签 -->

  ${fn:escapeXml('<h1>我是标题</h1>')}

  

  </body>

 

自定义函数

使用el函数对字符串的处理,可以满足大部分开发需求!有些个性化的需求,需要我们自定义处理函数。

例如:137****9534

 

1.        函数处理器类

 

 

/**

 * 函数处理器类,一个普通的java类,里面的函数处理方法必须为静态

 * @author Administrator

 *

 */

public class PhoneFunction {

 

    // 根据jsp页面传入的电话号码,隐藏其中4

    public static String phones(String msg) {

       

        // 先判断,再截取

        if (msg ==null || msg.length()!=11) {

            return msg;

        }

        // 截取

        return msg.substring(0,3) +"****" + msg.substring(7,11);

    }

}

 

 

2.        在WEB-INF/itcast.tld , 新建函数描述文件

 

<?xmlversion="1.0"encoding="UTF-8"?>

 

<taglibxmlns="http://java.sun.com/xml/ns/j2ee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

  version="2.0">

   

  <tlib-version>1.1</tlib-version>

  <short-name>itcast</short-name>

  <uri>http://www.1234567.com</uri>

 

  <function>

    <!-- 函数名称 -->

    <name>phone</name>

    <!-- 函数处理器类 -->

    <function-class>cn.itcast.function.PhoneFunction</function-class>

    <!-- 函数处理器类中方法-->

    <function-signature>java.lang.String phones(java.lang.String)</function-signature>

  </function>

 

</taglib> 

 

3.        页面使用

 

<!-- 引入自定义函数 -->

<%@tagliburi="http://www.1234567.com"prefix="itcast"%>

 

<body>

    ${itcast:phone('137108896341111') }

  </body>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值