自定义标签

=========自定义标签学习总结=========
标签的运行方式是:
JSP页面解析中发现自定义标签,则到上面的标签说明中寻找:如
<%@ taglib uri="/mytitle.tld" prefix="dada"%>
此时它会找到该标签的uri ,uri 在web.xml中已经定义了
 <taglib>
    
<taglib-uri>/mytitle.tld</taglib-uri>
    
<taglib-location>/WEB-INF/mytitle.tld</taglib-location>
  
</taglib>
此时它会通过uri在web.xml中查找到该标签的描述文件tld。那么在tld描述文件中又定义了该标签的处理类,具体完成业务的操作,标签处理类继承TagSupport,处理类完成操作后将返回页面。
<name>title</name>
    
<tagclass>com.derek.tags.TitleTag</tagclass>
 
 准备工作 :首先在WEB-INF/lib下添加taglibs-log.jar包
1、创建标签描述文件
     在WEB-INF下新建一个tld文件,该文件描述了此tld文件将由那个处理类完成操作,并且定义了该标签的属性。一个<taglib>中可以有很多个<tag>,由<name>标签名区分。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>html</shortname>
<uri>http://jakarta.apache.org/struts/tags-html</uri>

<tag>
     
<name>title</name>
    
<tagclass>com.derek.tags.TitleTag</tagclass>
    
<bodycontent>empty</bodycontent>
    
<attribute>
        
<name>begin</name>
        
<required>true</required>
    
</attribute>
        
<attribute>
        
<name>end</name>
        
<required>true</required>
    
</attribute>
</tag>

</taglib>

2、创建标签处理类
     该类继承  TagSupport,覆盖doEndTag()方法
   
package com.derek.tags;

import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import java.util.Properties;
import java.io.
*
;
import javax.servlet.jsp.JspWriter;

public class
 TitleTag extends TagSupport {
  
private String begin = null
;
  
private String end = null
;
  
public
 TitleTag() {}
  
public String getBegin() {return
 begin;}
  
public void setBegin(String begin) {this.begin =
 begin;}
  
public String getEnd(){return
 end;}
  
public void setEnd(String end){this.end =
 end;}

  
public int
 doEndTag() throws JspException {
    Properties ps 
= (Properties)pageContext.getAttribute("ps",pageContext.APPLICATION_SCOPE);//从上下文中取的message.properties

                  JspWriter jw =  pageContext.getOut();
    
if(begin!=null&&begin.length()>0
){
       String header 
=
 ps.getProperty(begin);
       System.
out.println("页眉"+
begin);
       
try
 {
      jw.println(header);
        }
catch
 (IOException ex) {ex.printStackTrace();}
    }
    
if(end!=null&&end.length()>0
){
       String footer 
=
 ps.getProperty(end);
       System.
out.println(" 页脚"+
end);
    
try
 {
      jw.println(footer);
      }
catch
 (IOException ex1) {ex1.printStackTrace();}
    }
    
return
 SKIP_BODY;
  }

  
public void
 release() {
    super.release();
  }
}

3、修改web.xml文件
  在web.xml中<web-app>下添加,将标签的uri与具体标签描述文件绑定
<taglib>
    
<taglib-uri>/mytitle.tld</taglib-uri>
    
<taglib-location>/WEB-INF/mytitle.tld</taglib-location>
</taglib>

4、在页面中使用标签
首先在页面中导入标签
<%@ taglib uri="/mytitle.tld" prefix="dada"%>
该句表示标签前缀为“dada”的标签将调用uri指定的标签,uri可以随便起名字,但一定要可web.xml中定义的uri相对应。
然后就可以在页面中使用了
<dada:title begin="" end="footer"/>
 
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值