文档章节

jsp自定义标签

f
 fei2253
发布于 2014/06/05 01:30
字数 491
阅读 63
收藏 0
点赞 0
评论 0

1.  创建  一个Class   

       继承  simpleTagSupport   

       然后重写doTag 方法  

       通过 this.getContext().getOut().print("XXXXXX");   将   要展示的内容输出到页面上

       设置标签所需要的参数    赋予get,set方法  (参数可以用于一起输出到页面)

public class Pager extends SimpleTagSupport {
 private String name;
 private String id;
 private String value;
 @Override
 public void doTag() throws IOException,JspException{
  getJspContext().getOut().print("<input type='text' value='"+value+"' name='"+name+"' id='"+id+"'/>");
 }
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getValue() {
  return value;
 }
 public void setValue(String value) {
  this.value = value;
 }
}

2.写标签

在WEB-INF   下新建一个文件  file(标签文件)     newTag.tld

 

找到C标签的jar包中找到c.tld 

找C标签的方法:在standard.jar 中  找到  META—INF/c.tld  

将其复制到newTag.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">
    
  <display-name>pager</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>pager</short-name>
  <!-- taglib 中的uri -->
  <uri>/howie_pager</uri>
  <tag>
    <name>pager</name>
    <!-- 标签类路径 -->
    <tag-class>org.howie.util.tag.Pager</tag-class>
    <!-- 是否需要包含body -->
    <body-content>empty</body-content>
    <!-- 参数   ,对应着标签类的所有参数 -->
    <attribute>
     <!-- 参数名 -->
        <name>name</name>
        <!-- 是否必须 -->
        <required>true</required>
        <!-- 是否支持el表达式 -->
        <fragment>true</fragment>
    </attribute>
     <attribute>
        <name>id</name>
        <required>true</required>
        <fragment>true</fragment>
    </attribute>
     <attribute>
        <name>value</name>
        <required>true</required>
        <fragment>true</fragment>
    </attribute>
  </tag>
</taglib>

此时标签已经写完  ,接下来就是引用标签了 

 

3.引用标签

在任意jsp头中

引入  标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/tag/pager.tld" prefix="p" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p:pager name="name" value="name" id="name"/>
</body>
</html>

如果是在 WEB-INF 下,可以直接填写  tld中的uri 

<%@ taglib uri="/howie_pager" prefix="p" %>

,但如果是在WEB-INF下的tag文件夹,则必须写成相对路径

 <%@ taglib uri="/tag/pager.tld" prefix="p" %>

© 著作权归作者所有

共有 人打赏支持
f
粉丝 0
博文 3
码字总数 1027
作品 0
广州

暂无相关文章

vim编辑模式、命令模式

编辑模式 vim要从一般模式进入编辑模式只要按字母 i 、I、a、A、o、O键就可以了 要从编辑模式回到一般模式按键盘上的Esc键即可。 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 o ...

黄昏残影 ⋅ 21分钟前 ⋅ 0

OSChina 周五乱弹 —— 如果有一天不当程序员了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享off的单曲《我唱情歌给你听》 《我唱情歌给你听》- off 手机党少年们想听歌,请使劲儿戳(这里) @小小编辑 :#如果不做程序...

小小编辑 ⋅ 28分钟前 ⋅ 4

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部