`
wing123
  • 浏览: 799885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义JSTL标签库(函数库)

    博客分类:
  • JSTL
阅读更多

jstl标签库的配置
 * 将jstl.jarstandard.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-INFWEB-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自带的标签元素冲突,重名等

 

分享到:
评论
2 楼 glw_anubis 2013-12-01  
可能出现的异常  
1 楼 pangxin12345 2010-01-07  
  这个好像是尚学堂!一个老师的笔记呀! 实在太像了!  有点自己的东西!

相关推荐

    自定义标签和自定义jstl函数的具体项目实现

    实现自定义JSTL函数需要创建一个函数库和相应的Java类。 1. **创建函数库XML文件**: 创建一个名为`fn.xml`的文件,放在`META-INF`目录下,定义函数库的元数据和函数。 ```xml &lt;name&gt;myfn &lt;namespace&gt;...

    jstl自定义标签和函数思维导图

    jstl自定义标签和函数思维导图

    自定义JSTL

    **二、创建自定义JSTL标签** 1. **定义标签库**:创建一个名为`mytags.tld`的TLD(Tag Library Descriptor)文件,其中定义了自定义标签的属性、返回类型、行为等信息。例如,定义一个简单的“greeting”标签: ``...

    JSTL标签库jar包文件

    每个`taglib`元素定义了一个TLD(Tag Library Descriptor)文件的位置,这告诉服务器JSTL标签库的位置和元数据。 总之,JSTL通过提供丰富的标签来增强JSP页面的功能,而解决"无法解析绝对uri"的错误通常涉及到正确...

    JSTL 开发自定义标签使用的jar

    JSTL主要包含核心标签库(Core)、XML处理标签库(XML)、函数库(Functions)和JDBC标签库(JDBC)。在这个场景中,我们重点关注的是JSTL的核心标签库以及如何使用自定义标签。 `jstl.jar`是JSTL的核心库,包含了...

    jstl标签库jar包

    **JSTL标签库与JAR包详解** JavaServer Pages Standard Tag Library(JSTL)是Java EE领域中用于简化JSP开发的一个重要工具。它提供了一组预定义的标签,帮助开发者更高效地处理常见任务,如迭代、条件判断、国际化...

    jstl标签库与使用教程

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中不可或缺的一部分,它为JSP页面提供了一套标准的标签,用于简化HTML和XML文档的处理,提高代码的可读性和可维护性。JSTL的使用极大地减少...

    jsp2.0 自定义标签和自定标签函数

    在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...

    JSTL标签库

    【JSTL标签库】是Java服务器页面(JSP)中的一种重要工具,它旨在增强HTML表单的功能,规范自定义标签的使用,以适应软件开发的分层设计原则,避免在JSP页面中混杂Java逻辑代码。JSTL(JavaServer Pages Standard ...

    jstl标签库依赖tld文件和jar

    **JSTL标签库**全称为JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一系列的标签来简化JSP开发,使得开发者能够更有效地处理常见任务,如迭代、条件判断、导出数据等。JSTL的核心...

    java自定义标签、自定义函数、taglib

    -- 使用JSTL内置的fn函数库 --&gt; ${my:uppercase('hello')} &lt;!-- 使用自定义函数库 --&gt; ``` 至于`taglib`,它是Java Web应用中用来定义和管理自定义标签和函数的机制。TLD文件就是taglib的一部分,它提供了标签库的...

    JSTL标签库_资料下载.zip

    综上所述,JSTL标签库是Java Web开发中一个非常重要的工具,它提高了代码的可读性和可维护性,降低了视图层的复杂度。通过掌握JSTL,开发者可以更高效地构建动态Web页面,提升开发效率。在提供的“JSTL标签库_资料...

    jstl标签库.rar

    《JSTL标签库在IDEA中的配置与应用详解》 JavaServer Pages Standard Tag Library (JSTL) 是一个用于简化JSP开发的标签库,它提供了标准的标签来执行常见的JSP任务,如迭代、条件判断、XML处理等,从而使得JSP代码...

    jstl两个核心包和jstl标签库EL表达式详解

    - **standard-1.1.2.jar**:这个库是JSTL的依赖,也称为JSTL的函数库。它提供了额外的标签功能,如日期和时间处理、URL重写、国际化等。这些功能是通过一系列自定义标签实现的,这些标签与JSTL的主库一起使用,可以...

    jstl标签库,开发必备

    **JSTL标签库的主要组件**: 1. **Core Tag Library**:基础标签库,提供了基本的控制流标签,如迭代、条件判断、URL操作等。 2. **fmt Tag Library**:格式化标签库,用于处理国际化和日期时间格式。 3. **fn Tag ...

    jstl标签包,用于jsp自定义标签

    在"jstl标签包"中,我们主要关注的是两个关键的组件:jstl.jar和standard.jar。 **jstl.jar** 是JSTL的主要库文件,包含了JSTL核心标签库。这个库提供了如条件语句(if/else)、迭代(foreach)、函数调用等功能,...

    自定义标签库

    - **TLD (Tag Library Descriptor)**: TLD文件是自定义标签库的元数据,它描述了标签库中的每个标签、属性、变量和函数。TLD通常以`.tld`为扩展名,并且必须放在WEB-INF目录下。 - **标签处理类 (Tag Handler ...

Global site tag (gtag.js) - Google Analytics