自定义标签

xiaoxiao2021-02-28  41

    JSP开发过程中,JSTL,Struts2Tag不能满足要求时,程序员可以根据自己的要求,定制标签。

    1、定义一个类继承TagSupport,并实现类中的两个方法,doStartTag()、doEndTag()。doStartTag()中可以通过pageContext获取八大内置对象。

public int doStartTag() throws JspException { JspWriter out = pageContext.getOut(); try { out.print("Welcome"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //EVAL_BODY_INCLUDE 不忽略标签体 //SKIP_BODY 忽略标签体 return EVAL_BODY_INCLUDE;//忽略标签体 } public int doEndTag() throws JspException { return EVAL_PAGE;//保留标签后面的内容 }

    2、在WEB-INF下配置tld文件

    

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>zmh</short-name> <uri>/zmh-tag</uri> <tag> <name>test</name> //标签名 <tag-class>tag.MyTag</tag-class> //标签定义的类 <body-content>empty</body-content> //标签体是否有内容,如果不忽略,写JSP </tag> </taglib>

    3、在页面引用

    

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/zmh-tag" prefix="zmh"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <zmh:test /> </body> </html>

   当然我们也可以给标签增加属性,大致和上面差不多,其tld配置如下,如下图

标签属性对应自定义类中的属性

doStartTag()方法如下

    那么我们在页面就可以使用

    

    然后页面就会显示:Welcome北京欢迎你。

    以上是自己对自定义标签的总结,注意这个tld配置文件是放到WEB-INF下的。

转载请注明原文地址: https://www.6miu.com/read-2613453.html

最新回复(0)