引用袁杰老师上课笔记
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> |