jstl标签库的配置
* 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)
注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境
是目前较为常用的环境
标签库的使用
* 采用taglib指令引入
自定义函数库:
1、定义类和方法(方法必须是public static)
2、编写自定义tld文件,并且将此文件放到WEB-INF或WEB-INF任意子目录下
3、在jsp中采用taglib指令引入自定义函数库
4、采用 前缀+冒号(:)+函数名 调用即可
MyFunctions.java
02
|
public
class
MyFunctions {
|
04
|
public
static
String sayHello(String name) {
|
05
|
return
"Hello "
+ name;
|
09
|
public
class
MyFunctions {
|
11
|
public
static
String sayHello(String name) {
|
12
|
return
"Hello "
+ name;
|
myfunctions.tld
自定义标签
Xml代码
01
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
|
08
|
<
description
>my functions library</
description
>
|
09
|
<
display-name
>my functions</
display-name
>
|
10
|
<
tlib-version
>1.0</
tlib-version
>
|
11
|
<
short-name
>my</
short-name
>
|
15
|
<
name
>sayHello</
name
>
|
16
|
<
function-class
>com.bjsxt.struts.MyFunctions</
function-class
>
|
17
|
<
function-signature
>java.lang.String sayHello(java.lang.String)</
function-signature
>
|
21
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
|
28
|
<
description
>my functions library</
description
>
|
29
|
<
display-name
>my functions</
display-name
>
|
30
|
<
tlib-version
>1.0</
tlib-version
>
|
31
|
<
short-name
>my</
short-name
>
|
35
|
<
name
>sayHello</
name
>
|
36
|
<
function-class
>com.bjsxt.struts.MyFunctions</
function-class
>
|
37
|
<
function-signature
>java.lang.String sayHello(java.lang.String)</
function-signature
>
|
jstl_fn.jsp
注意与前面的配置文件myfunctions.tld相对应,
prefix对应<short-name>my</short-name>
uri对应 <uri>http://www.bjsxt.com/functions</uri>
可使用以下面两种方式给name赋值:
1、${my:sayHello("David") }
2、request.setAttribute("name", "David");
Java代码
01
|
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
|
05
|
request.setAttribute("name", "David");
|
08
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
11
|
<
title
>testTemplate</
title
>
|
17
|
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
|
21
|
request.setAttribute("name", "David");
|
24
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
27
|
<
title
>testTemplate</
title
>
|
补充:web-app version="2.4"
有时也需要在web.xml中添加对标签的定义:
Xml代码
03
|
<
taglib-uri
>www.bjsxt.com/functions</
taglib-uri
>
|
04
|
<
taglib-location
>/WEB-INF/my.tld</
taglib-location
>
|
09
|
<
taglib-uri
>www.bjsxt.com/functions</
taglib-uri
>
|
10
|
<
taglib-location
>/WEB-INF/my.tld</
taglib-location
>
|
注意:
可能出现的异常
1、The function xxx must be used with a prefix when a default namespace is not specified
--- 在jsp页面中调用方式不正确,可能将 ":" 写成了 "."
2、The function xxx cannot be located with the specified prefix
--- a) 类中定义的方法不是 public static 的方法
b) 类中的方法名称和jsp自带的标签元素冲突,重名等
分享到:
相关推荐
总结来说,JSTL自定义标签提供了一种高效且可重用的方法来扩展JSP的功能。通过编写处理类和定义TLD,我们可以创建符合特定需求的标签,使JSP页面更加简洁、易于维护。在实际应用中,自定义标签可以极大地提高代码的...
JSTL自定义标签允许开发者扩展标准标签库的功能,满足特定需求。自定义标签由三部分组成:标签库描述符(TLD),标签处理类(Tag Handler Class)以及标签体(Tag Body)。 1. **标签库描述符(TLD)**:这是一个XML...
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...
在JavaWeb开发中,自定义标签库和JSTL(JavaServer Pages Standard Tag Library)是两个重要的组件,它们极大地提高了代码的可读性和可维护性。本教程将深入探讨这两个主题,帮助开发者更好地理解和应用它们。 一、...
作者向我们展示了如何通过创建自定义标签库(Tag Library)来扩展JSP的功能,从而实现数据绑定和展示。 首先,自定义标签库是JSP的一个重要特性,允许开发者定义自己的标签来简化代码并提高可读性。在本例中,...
**JSTL自定义标签详解** JavaServer Pages Standard Tag Library(JSTL)是用于简化JSP开发的一个标准标签库,它将常见的JSP代码片段封装成了可重用的标签,提高了代码的可读性和可维护性。在JSTL中,我们可以...
3. **在JSP页面中使用自定义标签**:在JSP页面中,你可以通过`<%@ taglib %>`指令引入自定义标签库,并用`<mytag:tagname>`的形式调用自定义标签。 4. **配置Web应用**:确保web.xml文件中配置了对JSTL的支持,包括...
Java-JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它为JSP开发者提供了一系列预定义的、用于处理常见任务的标签。这些标签旨在简化JSP开发,提高代码的可读性和可维护性,降低与...
jsp、jstl自定义标签实现的分页,实现的还是比较好的,没有在request、session等范围保存过数据,在pageContext范围内保存过集合的数据, 实现的方法还是比较简单的,适用性还是比较广的,我是实在是没分了,平时也...
在这个压缩包中,包含的是关于JSTL自定义标签的开发实例源码,对于正在学习JavaWeb技术的开发者来说,这是一个非常有价值的参考资料。 首先,我们要理解JSTL的基本概念。JSTL主要由五个核心部分组成:Core、XML、...
- **JSP页面**: JSP页面是使用自定义标签的地方,它们通过`<jsp:taglib>`指令引用标签库。 2. **创建自定义标签** 创建自定义标签涉及以下几个步骤: - 定义标签处理类,该类需要继承`javax.servlet.jsp.tagext....
JSTL是这样一个预定义的、标准的自定义标签库,它包含多个子库,每个子库都专注于不同的功能领域。 2. **JSTL的核心标签库(core)**: - `<c:out>`:用于安全地输出变量的值,防止XSS攻击。 - `<c:if>`:提供...
在JavaWeb开发中,`taglib-standard-jstlel-1.2.5.zip`是一个重要的组件,它包含了用于增强JSP(JavaServer Pages)功能的标签库。这个压缩包主要用于提供一套标准的标签,使得开发者能够更加方便地在JSP页面上进行...
在JSP页面中,通过`指令`引入自定义标签库,并使用`<tag-name>属性...</tag-name>`的格式调用自定义标签。 **二、自定义标签函数** 自定义标签函数是在JSP 2.0中引入的一种新的特性,它允许开发者像使用EL...
**JSTL自定义标签**是JavaServer Pages Standard Tag Library(JSTL)的一个扩展功能,允许开发者创建自己的标签库来增强页面逻辑和表现。JSTL是一个标准的标签库,它提供了处理常见JSP任务的标签,如迭代、条件语句...
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
源码阅读可以帮助开发者深入理解JSTL内部的实现机制,以及如何扩展自定义标签。 在实际应用中,JSTL的使用能够显著提高JSP页面的可维护性和可读性,因为它将业务逻辑和显示逻辑分离,遵循了MVC(Model-View-...
4. **在JSP页面中使用自定义标签**:完成以上步骤后,就可以在JSP页面中像使用标准JSTL标签一样使用自定义标签了。 例如,假设我们有一个名为`myTag`的自定义标签,其处理类为`com.example.MyTag`,在TLD文件中定义...
3. **在JSP页面中使用**:在JSP页面中,通过`<%@ taglib %>`指令引入自定义标签库,然后就可以像使用内置标签一样使用自定义标签了。 二、分页封装 分页是网页应用中常见的需求,通过自定义标签可以方便地实现。...