文档章节

jsp自定义标签

f
 fei2253
发布于 2014/06/05 01:30
字数 491
阅读 64
收藏 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
广州
TagSupport类的生命周期具体执行过程

(1)当jsp容器中在解释jsp页面时,如果遇到自定义标签的开始标记,将利用"标签处理类"建立一个"标签处理对象".在建立"标签处理对象"的过程中,jsp容器会回调setPageContext()方法,然后根据自定义...

xjcyxyx
2014/03/18
0
0
初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)

注释 java : // / / /** */ html : jsp <%-- --%> jsp注释和html注释的区别 jsp注释对jsp引擎有作用,当jsp引擎看到这个注释后,生产servlet文件是会忽略他 html注释对jsp引擎没有作用,jsp...

姜白告
08/03
0
0
javaweb开发之EL和JSTL

一、EL 1.概述 EL 全名为Expression Language。 EL表达式可用在所有的HTML和JSP标签中作用是代替JSP页面中复杂的JAVA代码。 EL主要作用如下: (1)获取数据: EL表达式主要用于替换JSP页面中的...

小米米儿小
2013/12/05
0
0
(JavaEE-10)自定义标签库

自定义标签库开发 自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤 编写一个实现Tag接口的Java类(标签处理器类)...

_-Leon-_
2014/07/12
0
0
开发自定义JSF组件(5) 在JSP中用JSF组件

完整的教材: 开发自定义JSF组件(1) HelloWorld 开发自定义JSF组件(2) 使用Render渲染器 开发自定义JSF组件(3) 使用绑定变量 开发自定义JSF组件(4) 保存状态与恢复状态 开发自定义JSF组件(5)...

zhuzhiou
2013/05/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash各类扩展详解

Bash各类扩展详解 Bash中主要包括大括号扩展、波浪号扩展、变量扩展、子命令扩展、文件名扩展和算数扩展。这些扩展组合在一起为Bash带来了极大的易用性。掌握这些扩展的用法和功能,能够为B...

小陶小陶
36分钟前
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
1
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
1
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部