使用自定义tld标签简化jsp的繁琐操作

  最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个。使用tld标签可以简化jsp代码,以后也可以重用代码,所以出于这两个优点,用自定义的tld标签是一个不错的选择。这里只做一个简单例子,将字符串全部变成大写。

1、定义tld的类 

定义的方法应该是static方法。

public class TestFunction {

    public static String stringUpperCase(String target){
        return target.toUpperCase();
    }
} 

2、添加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">  

  <tlib-version>1.0</tlib-version>
  <short-name>fu</short-name>
  <uri>/WEB-INF/tags/function.tld</uri> 

  <function>
    <name>stringUpperCase</name>
    <function-class>test.tld.TestFunction</function-class>
    <function-signature>java.lang.String stringUpperCase(java.lang.String)</function-signature>
  </function>
</taglib>  

<short-name>表示声明标签的调用名称。   

<uri>表示tld标签的位置,tld标签应该定义在WEB-INF中。这里我放在WEB-INF的tags文件夹中。

<function-class>tld标签运行的方法的类。

<function-signature>声明了方法返回的类型,方法名,方法的参数。方法参数可以是List,int等。

3、web.xml中声明tld标签

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name></display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>
    <taglib>
        <taglib-uri>/tags/function</taglib-uri>
        <taglib-location>/WEB-INF/tags/function.tld</taglib-location>
    </taglib>
  </jsp-config>
</web-app>

4、使用自定义tld标签

<%@ taglib prefix="fn" uri="/tags/function" %>

${fn:stringUpperCase(target) }

声明tld标签后,才开始使用。target是后台保存在request或session的字符串。

5、总结

tld标签看似没什么用,好好使用它能在关键时候使你的页面更加优雅,在多次使用某段jsp的代码,可以封装起来,使页面更加简洁,下次再次使用的时候更加方便。

    

时间: 2024-12-16 22:39:58

使用自定义tld标签简化jsp的繁琐操作的相关文章

自定义tld标签,页面使用

背景需求: 系统本身的session不能在页面使用 如下: controller: @RequestMapping(method=RequestMethod.GET) public String getIndex(HttpServletRequest request){ //获取工具id,返回页面工具id,为设置页面高度 request.setAttribute("toolId",toolManager.getCurrentPlacement().getId().replaceAll(

怎样使用自定义标签简化 js、css 引入?

国庆将至,工作兴致全无,来总结点项目里平时不起眼干货. 前端引入 js .css 一般是这样: <script type="text/javascript" src="webContent 相对路径"></script> <link type="text/css" href="webContent 相对路径" rel="stylesheet"/> 简化后的 js .css

JSP自定义分页标签TAG

首先我们需要在WEB-INF/tld/目录下创建page.tld文件 <?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>page</short-name> <u

JSP自定义业务标签

自定义标签: package cn.hv.tag; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyContent; import javax.servlet.jsp.tagext.BodyTagSupport; public class BodyTag extends BodyTagSupport { private St

struts2 自定义tag标签

在项目中可能有很多相同的jsp页面表示功能,这时可以使用自定义的tag进行定义,渐少重复的工作量便于日后维护! 下面就基于struts2进行自定义标签的定义与实现: 首先:自定义类MyTag继承struts2的Component package cookielogin; import java.io.IOException; import java.io.Writer; import org.apache.struts2.components.Component; import com.open

自定义分页标签儿

这个前面也就是匆匆带过了,还是好好描述一番吧. 什么是自定义标签儿.就是在jsp页面中,我们自己生成定义的标签儿,可以处理一定的逻辑.所以本质上还是要有java代码来处理的. 自定义标签儿能够运行的三个要素: 1.对应的java处理程序. 2.tld标签儿语言定义 3.在.jsp文件中导入包儿,并且,在页面中使用. 那么在3中得到导入路径,通过3知道对应的tld文件,那么一定是在tld中有对应的java包的引入.这样三者构成一种连接关系,那么代码就能执行了. 下面以分页为例,来简单阐述这个自定义

[原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

自定义tag标签-实现long类型转换成Date类型

数据库里存储的是bigint型的时间,entity实体中存放的是long类型的标签,现在想输出到jsp页面,由于使用的是jstl标签,而要显示的是可读的时间类型,找来找去有个 fmt:formatDate可以转化,但是只能将String类型的转成date型,long型则不可以,思考了好久,又不想破环jsp页面这种标签结构,参考网上jstl标签编写方法,如下:第一步 写一个类继承TagSupport,实现doStartTag() 方法. package com.pp.yxx.util.tags;

自定义JSTL标签和函数库

一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext 对象. 在 doTag() 方法中完成逻辑,通过 JspWriter out = jspContext.getOut(); 获取到的 out 对象,可以输出到页面.如: /** * MyTag2 * * @author solverpeng * @create 2016-07-03-10:20 */