您的位置:首页 > Web前端 > JavaScript

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

2014-05-20 21:58 190 查看
引用袁杰老师上课笔记

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>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: