关闭

自定义标签

181人阅读 评论(0) 收藏 举报
分类:

自定义标签  


    step1,写一个java类,继承SimpleTagSupport类。


    step2,override doTag方法,在该方法里面编写处理逻辑。


    step3,描述标签(.tld文件)。

        注:

            a. tld文件要放到WEB-INF\下。

            b.<body-content>的值可以是

                empty   ---没有标签体。

                scriptless  ---可以有标签体,并且标签体的内容不能够出现java代码(<%  %>,<%=  %>,<%!  %>)。

                JSP        ---可以有标签体,并且标签体的内容可以出现java代码。但是,只有复杂标签技术才支持该值,简单标签技术只支持empty和scriptless。



代码示例:自定义一个可以输出任意行指定字符串的标签

step1:HelloTag.java

step2:override doTag方法

package tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;

/**
 * 标签类
 * 	1.继承SimpleTagSupport类
 *  2.override doTag方法
 *  3.标签有哪些属性,标签类也有要对应的属性
 *    a.要求属性名一致
 *    b.类型要匹配
 *    c.要有对应的set方法。
 *
 */
public class HelloTag extends SimpleTagSupport{
	private String msg;
	private int qty;
	
	public HelloTag(){
		System.out.println("HelloTag的构造器...");
	}
	
	public void setMsg(String msg) {
		System.out.println("setMsg方法..." + msg);
		this.msg = msg;
	}

	public void setQty(int qty) {
		System.out.println("setQty方法..." + qty);
		this.qty = qty;
	}

	@Override
	public void doTag() throws JspException, IOException {
		System.out.println("doTag方法...");
		/*
		 * SimpleTagSupport类提供了一个方法来获得pageContext,
		 * pageContext提供了一些方法来获得所有的隐含对象。
		 */
		PageContext ctx = (PageContext)getJspContext();
		JspWriter out = ctx.getOut();
		for(int i = 0; i < qty; i++){
			  out.println(msg + "<br/>");
		}
	}
	
}


step3:描述文件  mytag.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">
    <description>JSTL 1.1 core library</description>
	  <display-name>JSTL core</display-name>
	  <tlib-version>1.1</tlib-version>
	  <short-name>c1</short-name>
	  <uri>http://www.xiaolong.com/mytag</uri>
	  
	  <tag>
	    <name>hello</name>
	    <tag-class>tag.HelloTag</tag-class>
	    <body-content>empty</body-content>
	     <attribute>
	        <name>msg</name>
	        <required>true</required>
	        <rtexprvalue>false</rtexprvalue>
	    </attribute>
	    <attribute>
	        <name>qty</name>
	        <required>true</required>
	        <rtexprvalue>true</rtexprvalue>
	    </attribute>
	  </tag>
</taglib>


step4:使用 sayHello.jsp

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@taglib uri="http://www.xiaolong.com/mytag" prefix="c1" %>
<html>
	<head></head>
	<body>
		<c1:hello msg="hello 签下了" qty="${1+4}"/>
	</body>
</html>





0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

HTML自定义标签与标签自定义属性

大部分浏览器支持自定义HTML标签和为标准标签自定义属性,而且很多浏览器对这两种自定义行为的支持都很直接了当。 自定义HTML标签 在firefox、chrome这种现代浏览器里,自定义标...
  • CsethCRM
  • CsethCRM
  • 2014-01-16 11:14
  • 16963

Spring下自定义xml标签

spring框架下自定义一个标签,为以后定义一组标签,来控制流程处理做准备。自定义一个标签需要以下步骤: 确定标签的属性,编写对应的java bean 根据java bean编写对应xsd文件 编写...
  • wzl19870309
  • wzl19870309
  • 2017-03-16 15:27
  • 1634

springmvc+freemarker实现自定义标签

1.目标 如图是我们的目标页面的一部分,因为类目列表是每个 页面都需要展示的一部分,所以把这个属性列表提取出来,做成一个自定义标签,在不通的页面上直接引用标签,就可以直接展示了 2.编写数...
  • CrazyCoder2010
  • CrazyCoder2010
  • 2016-10-18 14:57
  • 1233

jsp自定义标签库

  • 2017-10-31 14:30
  • 120KB
  • 下载

微信 自定义标签代码

  • 2015-01-24 23:15
  • 628KB
  • 下载

html自定义标签的使用

  • 2010-09-28 16:14
  • 5KB
  • 下载

用JSP自定义标签输出Fckeditor

  • 2010-08-02 00:24
  • 24KB
  • 下载

jsp自定义标签实例

  • 2009-05-28 15:15
  • 364KB
  • 下载

带有参数的taglib(自定义标签)

  • 2008-07-23 20:44
  • 4KB
  • 下载

struts自定义标签

  • 2008-09-22 10:39
  • 2KB
  • 下载
    个人资料
    • 访问:257499次
    • 积分:5828
    • 等级:
    • 排名:第5141名
    • 原创:351篇
    • 转载:36篇
    • 译文:0篇
    • 评论:23条
    文章分类