学习笔记之 jstl标签库 与 自定义标签库
2014-05-20 21:58
190 查看
引用袁杰老师上课笔记
核心标签库, 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案例!
函数库:处理字符串!
学习方式:
1. 对字符串的处理函数,查看fn.tld文件,看使用说明!
2. 在页面使用:引入jstl函数库(el函数库), 再使用其定义的函数
3. 举例
例如:137****9534
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> |
相关文章推荐
- 学习笔记之 jstl标签库 与 自定义标签库
- 学习笔记_Java_day13_JSTL标签库(1、2、3、4、5、6、7、8)
- JSTL 标签库 使用(web基础学习笔记十九)
- 学习笔记-JSTL标签库--C SQL
- JSTL学习笔记
- Struts 1 学习笔记-3-3(JSTL格式化标签库测试)
- jstl与el学习笔记
- 尚学堂Struts学习笔记2:JSTL_格式化库及函数库
- jstl fmt 标签学习笔记
- JSTL学习笔记2---流程控制标签
- JSTL & EL 学习笔记
- JSP学习笔记--JSP标签库
- JSTL学习笔记1-----操作javabean以及属性
- JSTL学习笔记1-----操作javabean以及属性
- JSTL学习笔记2---流程控制标签
- JSTL标签库的学习笔记
- JSTL学习应用笔记
- jstl学习笔记
- JSTL学习笔记2---流程控制标签
- JSTL学习笔记1-----操作javabean以及属性