`

JSP自定义标签开发入门

阅读更多

一、自定义标签的作用

  自定义标签主要用于移除Jsp页面中的java代码。

二、自定义标签开发和使用

2.1、自定义标签开发步骤

1、编写一个实现TagSupport接口的Java类(标签处理器类)

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.lang.StringUtils;
import java.io.IOException;

public class ResourceTags extends TagSupport {
	//参数
	private String url;
    private String className;

    @Override
    public int doStartTag() throws JspException {
    	StringBuffer stringBuffer = new StringBuffer();
    	if(StringUtils.isNotEmpty(url)){
    		stringBuffer.append("<div>");
    		stringBuffer.append("<img src='"+url+"' class='"+className+"'>");
    		stringBuffer.append("</div>");
    	}
    	JspWriter out = pageContext.getOut();
    	try {
    		out.write(stringBuffer.toString());//输出到jsp页面
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
        return EVAL_BODY_INCLUDE;
    }

	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
}

 

 2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述

 ResourceTags.tld文件的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">
	<!--taglib(标签库)的版本号 -->
    <tlib-version>1.0</tlib-version>
	<!--签库文件的命名空间 -->
    <short-name>role</short-name>
    <!-- 
         为自定义标签库设置一个uri,uri以/开头,/后面的内容随便写,如这里的/gacl ,
         在Jsp页面中引用标签库时,需要通过uri找到标签库
         在Jsp页面中就要这样引入标签库:<%@taglib uri="http://jsp/user/defined/tag" prefix="user"%>
     -->
    <uri>http://jsp/user/defined/tag</uri>
    <tag>
	    <!--标签名-->
        <name>resource</name>
        <!-- 标签对应的处理器类-->
        <tag-class>com.sf.sfbuy2.tags.ResourceTags</tag-class>
		<!--
		是否有标签体 
		body-content:值默认的是jsp。如果是自关闭标签,需要制定成empty。
		如果标签有属性,还有attribute子元素
		-->
        <body-content>JSP</body-content>
        <attribute>
            <description></description>
			<!--属性的名称(与类中变量同名) -->
            <name>url</name>
			<!--是否必需 -->
            <required>true</required>
			<!--属性的值是否通过运行时加以赋值(程序动态赋值) -->
            <rtexprvalue>false</rtexprvalue>
        </attribute>
        <attribute>
            <description></description>
            <name>className</name>
            <required>false</required>
            <rtexprvalue>false</rtexprvalue>
        </attribute>
    </tag>
</taglib>

 

2、配置web.xml

(1)作用

在web.xml中进行标签配置文件的设置,告诉web应用程序,需要调用的自定义标签在哪里。

(2)前提

在标签配置文件中,如果没有进行<uri>的配置,则必须进行web.xml的配置。如果已经配置了uri元素的值,就不需要进行web.xml的配置,可以直接在jsp上调用。uri表现在JSP页面引入标签时候,需为taglib指令指定uri,注意和TLD文件中的标签类的别名name区分,那个是在JSP页面中调用标签时候命名空间后面写入。

(3)配置(如上图在WEB.XML中的配置)

所有的标签配置文件的配置,都必须在<jsp-config>元素中。每个配置文件有自己<taglib>元素。

<taglib>

<taglib-location>标签配置文件的物理地址</taglib-location>

<taglib-uri>标签配置文件的调用别名</taglib-uri>

<taglib-uri>http://jsp/user/defined/tag</taglib-uri>

<taglib-location>/WEB-INF/ResourceTags.tld</taglib-location>

</taglib>

在Jsp页面中使用自定义标签

  使用"<%@taglib uri="标签库的uri"  prefix="标签的使用前缀"%>"指令引入要使用的标签库。

例如:在jsp中引用http://jsp/user/defined/tag标签库

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jsp/user/defined/tag" prefix="ud"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="all" />
<meta name="Description" content="" />
<title>title</title>
<%@ include file="/WEB-INF/views/common/common.jsp" %>
</head>
<body>
<div style="text-align:center;">
使用自定义标签显示指定的图片
<ud:resource url="http://localhost:8080/images/1060868.png" className="aa"/>
</div>
</body>
</html>

 

分享到:
评论

相关推荐

    JSP自定义标签入门学习

    本文为大家分享了JSP自定义标签入门学习教程,希望大家喜欢。 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作...

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 02_Servlet使用入门(共23页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    jsp中自定义Taglib详解

    自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,或者TagSupport除此之外,JSP自定义标签类还有如下要求。 如果标签类包含属性,每个属性都有对应的getter和setter方法。 重写doTag()...

    完整版Java JSP web开发教程 全套PPT课件资料 共13个章节.rar

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    JSP开发技术大全 源码

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    完整版Java JSP web开发教程 05_JSP简介(共17页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 09_JSP表达式语言(共23页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 08_JavaBean和JSP中(共26页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    JSP开发技术大全 JSP

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    jsp 开发技术大全

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    完整版Java JSP web开发教程 12_过滤器(共20页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 01_web概述(共18页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 13_MVC 设计模式(共22页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 03_会话跟踪简介(共22页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    完整版Java JSP web开发教程 04_JavaMail和Servlet(共22页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

Global site tag (gtag.js) - Google Analytics