背景:公司框架好烂啊,据说部门下拉选之类的都没有封装好,还需要写方法(拷贝js,jsp以及后台接口)过去。字典表也没用过。新项目要启动了,准备写一些标签,方便之后使用。所以先写个demo联一下,之后把字典,部门,用户之类的封一个标签。

1.先写个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>JSTL 1.1 functions library</description><display-name>JSTL functions sys</display-name><tlib-version>1.1</tlib-version><short-name>sys</short-name><uri>http://java.sun.com/jsp/jstl/functionss</uri><tag><name>dict</name><tag-class>cn.bszx.base.action.sys.DictTag</tag-class><body-content>JSP</body-content><attribute><name>dictType</name> <required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>dictKey</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag>
</taglib>

其中需要注意的就是<tag>标签里面的内容name为标签名,tag-class为实现该标签的class的地址,body-content为jsp意思是接收jsp的所有语法。attribute为标签的属性,我这个标签有两个属性,分别为dictType和dictKey  required意思为是否必填,rtexprvalue意思为能否使用表达式获取值。

2.填写实现该标签的java文件。

public class DictTag extends BodyTagSupport {private String dictType;private  String dictKey;@Overridepublic int doStartTag() throws JspException {String html = "";if("0".equals(dictKey)){html = "<span>男</span>";}else if("1".equals(dictKey)){html = "<span>女</span>";}try{pageContext.getOut().write(html);}catch (Exception e){e.printStackTrace();}return super.doStartTag();}public String getDictType() {return dictType;}public void setDictType(String dictType) {this.dictType = dictType;}public String getDictKey() {return dictKey;}public void setDictKey(String dictKey) {this.dictKey = dictKey;}
}

java代码需要继承BodyTagSupport。填写属性,即标签属性dictType和dictKey。填写属性的get\set方法。重写doStartTag方法,将需要输出的标签按照HTML格式写出来即可。

3.前台引用该标签

导入自定义标签地址,用prefix指代

<%@ taglib prefix="sys" uri="/jsp/tlds/dict.tld"%>

引用的时候<sys:dict dictType="1" dictKey="1"/>即可。页面编译的时候会把其转变<span>女</span>

4.使用场景

对于常用的内容可以制作自定义标签来进行使用。比如用户列表,部门列表之类的。这样的话,以后只需要引用标签,<sys:dept/>就可以了。而不需要每次都编写获取部门信息的ajax

jsp-自定义标签Tag相关推荐

  1. jsp自定义标签的问题Unable to load tag handler class

    本人在做jsp自定义标签的时候,报错: Unable to load tag handler class 后面找到原因是:在eclipse开发中,之前替换了一个jar包,原来的jar在下面视图中报红叉 ...

  2. jsp自定义标签学习

    简单的说明: 1,说明---jsp自定义标签: HelloWorld:jsp自定义标签的使用流程: QueryTag:带属性标签的定义以及连接数据库使用: IteratorTag:带标签体的标签定义以 ...

  3. JSP自定义标签之简单标签入门

    在sun官方文档上有下面这样一段话. 官方文档声明 public interface SimpleTag extends JspTag Interface for defining Simple Ta ...

  4. 如何使用jsp自定义标签 JspTag 使用入门

    java开发中,sturts标签和c标签就是我们常用的两种标签,本文主要教大家如何定义自己的标签,已达到代码整合,公共化的目的.通过jsp自定义标签,可以将一个元素,或者一个表格,一个div甚至整个页 ...

  5. java自定义标签 map_基于Spring MVC的自定义标签Tag

    基于Spring MVC的自定义标签Tag 1.环境准备 本次小项目基于Spring MVC进行测试呈现,项目依赖的jar文件列表如下: 2.搭建SpringMVC Spring MVC环境最关键的两 ...

  6. 转载:javaweb学习总结(二十三)——jsp自定义标签开发入门

    javaweb学习总结(二十三)--jsp自定义标签开发入门 转自:http://www.cnblogs.com/xdp-gacl/p/3916734.html 一.自定义标签的作用 自定义标签主要用 ...

  7. JSP自定义标签学习笔记

    http://blog.csdn.net/liangbinny/article/details/6309893 本文是本人学习<JavaWeb学习>书籍所记下的学习笔记 一.概述 JSP ...

  8. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  9. html模板(base标签,meta标签,禁用浏览器缓存)+JSP自定义标签荔枝

    [1]html模板 <html> <head><!-- base标签表示uri相对路径的基准路径 --><base href="http://loc ...

  10. jsp自定义标签(taglib)编写的原理和实现

    jsp自定义标签(taglib)编写的原理和实现 转:http://www.javaeye.com/topic/157737 个tag就是一个普通的java类,它惟一特别之处是它必须继承TagSupp ...

最新文章

  1. MPB:林科院袁志林组-​内生镰刀菌基因组染色体级别组装和注释
  2. python 流式编程_python 使用yield进行数据的流式处理
  3. WinCE中串口驱动及接口函数介绍
  4. rowdata java_Java RowDataUtil.addRowData方法代碼示例
  5. IT男1-10分打分标准,请对号入座!
  6. Scrum指南这么改,我看要完蛋!
  7. YOLOv2-darknet 内容解析
  8. 云原生的What、Why、How | 凌云时刻
  9. Linux下安装字体后刷新字体
  10. 如何快速构建一个Flutter互动直播应用
  11. html5做九九乘法表,利用JavaScript制作九九乘法表实例教程
  12. Android总数的百分比,Android 计算目前使用内存百分比的方法
  13. cisco交换机配置记录(一)
  14. 一个优秀的网站首页是如何设计的?
  15. 保险精算--第13周作业
  16. IB中文:文学作品中幽默手法的表现方式(上)
  17. [PCB]PCB光板生产过程中板子弯曲或翘起原因分析
  18. 微信麻将连接服务器失败,微乐麻将授权失败是怎么回事?微乐麻将怎么用微信登录?...
  19. 车载、行车记录仪产品知识汇集
  20. go语言开发工具sublime text3 + gosublime配置

热门文章

  1. web版本 开源压测工具_14款好用开源的Web应用压力负载,性能测试工具推荐
  2. steam你画我猜中文版
  3. MPEG2-TS音视频同步原理(PCR dts pts)
  4. Topic my-replicated-topic not present in metadata after 60000 ms.
  5. cisco SCE 第一部分 介绍
  6. 龙芯+QtCreator+神通数据库+中标麒麟操作系统
  7. 快鱼吃慢鱼:浪潮服务器未来五年要争全球第一的背后
  8. 3Q大战——谁是赢家?
  9. Warning:It is not safe to rely on the system's timezone settings
  10. 视频直播源码开发时关于MySQL数据库的恢复方案