jstl标签库的配置
* 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)
注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境
是目前较为常用的环境
标签库的使用
* 采用taglib指令引入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
自定义函数库:
1、定义类和方法(方法必须是public static)
2、编写自定义tld文件,并且将此文件放到WEB-INF或WEB-INF任意子目录下
3、在jsp中采用taglib指令引入自定义函数库
4、采用 前缀+冒号(:)+函数名 调用即可
MyFunctions.java
public class MyFunctions {
public static String sayHello(String name) {
return "Hello " + name;
}
}
myfunctions.tld
自定义标签
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="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">
<description>my functions library</description>
<display-name>my functions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>my</short-name>
<uri>http://www.bjsxt.com/functions</uri>
<function>
<name>sayHello</name>
<function-class>com.bjsxt.struts.MyFunctions</function-class>
<function-signature>java.lang.String sayHello(java.lang.String)</function-signature>
</function>
</taglib>
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");
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib uri="http://www.bjsxt.com/functions" prefix="my" %>
<%
request.setAttribute("name", "David");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>testTemplate</title>
</head>
<body>
${my:sayHello(name) }
</body>
</html>
补充:web-app version="2.4"
有时也需要在web.xml中添加对标签的定义:
<jsp-config>
<taglib>
<taglib-uri>www.bjsxt.com/functions</taglib-uri>
<taglib-location>/WEB-INF/my.tld</taglib-location>
</taglib>
</jsp-config>
注意:
可能出现的异常
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函数需要创建一个函数库和相应的Java类。 1. **创建函数库XML文件**: 创建一个名为`fn.xml`的文件,放在`META-INF`目录下,定义函数库的元数据和函数。 ```xml <name>myfn <namespace>...
jstl自定义标签和函数思维导图
**二、创建自定义JSTL标签** 1. **定义标签库**:创建一个名为`mytags.tld`的TLD(Tag Library Descriptor)文件,其中定义了自定义标签的属性、返回类型、行为等信息。例如,定义一个简单的“greeting”标签: ``...
每个`taglib`元素定义了一个TLD(Tag Library Descriptor)文件的位置,这告诉服务器JSTL标签库的位置和元数据。 总之,JSTL通过提供丰富的标签来增强JSP页面的功能,而解决"无法解析绝对uri"的错误通常涉及到正确...
JSTL主要包含核心标签库(Core)、XML处理标签库(XML)、函数库(Functions)和JDBC标签库(JDBC)。在这个场景中,我们重点关注的是JSTL的核心标签库以及如何使用自定义标签。 `jstl.jar`是JSTL的核心库,包含了...
**JSTL标签库与JAR包详解** JavaServer Pages Standard Tag Library(JSTL)是Java EE领域中用于简化JSP开发的一个重要工具。它提供了一组预定义的标签,帮助开发者更高效地处理常见任务,如迭代、条件判断、国际化...
**JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中不可或缺的一部分,它为JSP页面提供了一套标准的标签,用于简化HTML和XML文档的处理,提高代码的可读性和可维护性。JSTL的使用极大地减少...
在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...
【JSTL标签库】是Java服务器页面(JSP)中的一种重要工具,它旨在增强HTML表单的功能,规范自定义标签的使用,以适应软件开发的分层设计原则,避免在JSP页面中混杂Java逻辑代码。JSTL(JavaServer Pages Standard ...
**JSTL标签库**全称为JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一系列的标签来简化JSP开发,使得开发者能够更有效地处理常见任务,如迭代、条件判断、导出数据等。JSTL的核心...
-- 使用JSTL内置的fn函数库 --> ${my:uppercase('hello')} <!-- 使用自定义函数库 --> ``` 至于`taglib`,它是Java Web应用中用来定义和管理自定义标签和函数的机制。TLD文件就是taglib的一部分,它提供了标签库的...
综上所述,JSTL标签库是Java Web开发中一个非常重要的工具,它提高了代码的可读性和可维护性,降低了视图层的复杂度。通过掌握JSTL,开发者可以更高效地构建动态Web页面,提升开发效率。在提供的“JSTL标签库_资料...
《JSTL标签库在IDEA中的配置与应用详解》 JavaServer Pages Standard Tag Library (JSTL) 是一个用于简化JSP开发的标签库,它提供了标准的标签来执行常见的JSP任务,如迭代、条件判断、XML处理等,从而使得JSP代码...
- **standard-1.1.2.jar**:这个库是JSTL的依赖,也称为JSTL的函数库。它提供了额外的标签功能,如日期和时间处理、URL重写、国际化等。这些功能是通过一系列自定义标签实现的,这些标签与JSTL的主库一起使用,可以...
**JSTL标签库的主要组件**: 1. **Core Tag Library**:基础标签库,提供了基本的控制流标签,如迭代、条件判断、URL操作等。 2. **fmt Tag Library**:格式化标签库,用于处理国际化和日期时间格式。 3. **fn Tag ...
在"jstl标签包"中,我们主要关注的是两个关键的组件:jstl.jar和standard.jar。 **jstl.jar** 是JSTL的主要库文件,包含了JSTL核心标签库。这个库提供了如条件语句(if/else)、迭代(foreach)、函数调用等功能,...
- **TLD (Tag Library Descriptor)**: TLD文件是自定义标签库的元数据,它描述了标签库中的每个标签、属性、变量和函数。TLD通常以`.tld`为扩展名,并且必须放在WEB-INF目录下。 - **标签处理类 (Tag Handler ...