jsp自定义标签-----嵌套标签

转载 2013年12月06日 09:20:16
开发类似sun公司提供的<c:if> <c:else>标签 

实现步骤: 

第一步:编写一个父标签处理器Choose.java 

public class Choose extends SimpleTagSupport { 

//标记执行那个标签 
private boolean isDo; 

public boolean isDo() { 
return isDo; 


public void setDo(boolean isDo) { 
this.isDo = isDo; 

//父标签控制标签体执行 
public void doTag() throws JspException, IOException { 

getJspBody().invoke(null); 





第二步:编写一个 子标签WhenTag.java 、OtherwithTag.java 类似 if else 
public class WhenTag extends SimpleTagSupport { 

private boolean test; 

public void setTest(boolean test) { 
this.test = test; 


public void doTag() throws JspException, IOException { 

Choose parent=(Choose) getParent(); 
if(test && !parent.isDo()) 

getJspBody().invoke(null); 
parent.setDo(true); 





public class OtherwithTag extends SimpleTagSupport { 

public void doTag() throws JspException, IOException { 

Choose parent=(Choose) this.getParent(); 
if(!parent.isDo()) 

getJspBody().invoke(null); 
parent.setDo(true); 




第三步:编写一个*.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"> 
    <description>A tag library exercising SimpleTag handlers.</description> 
    <tlib-version>1.0</tlib-version> 
    <short-name>SimpleTagLibrary</short-name> 
    <uri>http://www.liyong.nesttag</uri> 
    <tag> 
        <description>show client IP</description> 
        <name>choose</name> 
        <tag-class>com.liyong.nestTag.Choose</tag-class> 
        <!-- 标签体不为空 这与传统标签不同 JSP --> 
        <body-content>scriptless</body-content> 
    </tag> 
    <tag> 
        <description>show client IP</description> 
        <name>when</name> 
        <tag-class>com.liyong.nestTag.WhenTag</tag-class> 
        <body-content>scriptless</body-content> 
        <attribute> 
        <name>test</name> 
        <required>true</required> 
        <rtexprvalue>true</rtexprvalue> 
        </attribute> 
    </tag> 
    
    <tag> 
        <description>show client IP</description> 
        <name>otherwith</name> 
        <tag-class>com.liyong.nestTag.OtherwithTag</tag-class> 
        <body-content>scriptless</body-content> 
       
    </tag> 
</taglib> 

第四步:编写一个jsp 使用标签并且导入自定义标签 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@taglib uri="http://www.liyong.nesttag" prefix="fix" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <base href="<%=basePath%>"> 
    
    <title>My JSP 'nestTag.jsp' starting page</title> 
    
<!-- 
<link rel="stylesheet" type="text/css" href="styles.css"> 
--> 

  </head> 
  
  <body> 
<br> 
<%request.setAttribute("user","user"); %> 
  <fix:choose> 
<fix:when test="${user==null }"> 
                                          未登陆. <br> 
</fix:when> 
<fix:otherwith> 
              welcome用户已经登录. <br> 
</fix:otherwith> 
  </fix:choose> 

  </body> 
</html> 

第五步:测试...

JSP自定义标签由浅到深详细讲解(全)

一、基本概念 1.标签(Tag):   标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的...
  • sinat_29581293
  • sinat_29581293
  • 2016年07月18日 10:40
  • 4295

三个标签案例:帮你深入学习JSP自定义标签

三个标签案例:帮你深入学习JSP自定义标签
  • wangyang1354
  • wangyang1354
  • 2013年10月01日 22:54
  • 2054

Jsp 自定义标签嵌套

// 外层标签 package tao.tag; import java.util.HashMap; import java.util.Map; import javax.serv...
  • id19870510
  • id19870510
  • 2010年07月09日 13:53
  • 3370

如何在JavaWeb程序中使用自定义标签(tag、tld两种)

tld定义格式 1.0 1.2 Cms Tag A simple appbase tag library pag
  • changqing5818
  • changqing5818
  • 2015年12月03日 20:07
  • 3604

用SimpleTagSupport类开发自定义标签

package com.hbsi.csdn.web; import java.io.IOException; import java.io.StringWriter; import javax....
  • a1304317638
  • a1304317638
  • 2012年11月19日 20:33
  • 5111

利用SimpleTagSupport创建定制标签

SimpleTagSupport类别顾名思义,就是可以处理一些简单的自订标签需求,它是在JSP 2.0之后新增的类别,对于一些简单的自订标签页求,您可以继承它来实作标签处理类别,而不用为了处理一些Ta...
  • zavens
  • zavens
  • 2007年07月11日 18:56
  • 4903

JSP自定义标签(4):开发jsp嵌套的标签

开发嵌套的标签:haveChildTag   实际工程中往往需要多个标签来配合完成一定的功能,嵌套的标签存在父子关系,其中,父为外层标签,子为内层标签。本实例将用两个简单的标签来演示,父标签则作出逻辑...
  • nothingisgod
  • nothingisgod
  • 2011年04月08日 17:43
  • 1820

SimpleTagSupport自定义标签的使用

使用简单标签 很简单,分为以下步骤: 1. 创建一个类 继承SimpleTagSupport这个类  重写 他的doTag方法   其中 dotag方法中最重要的是 JspFragment jf =...
  • u012760183
  • u012760183
  • 2015年05月22日 17:54
  • 1443

jsp 自定义标签-SimpleTagSupport 使用笔记

项目需求:jsp页面自定义搜索行,点击a标签搜索分类,重新刷新页面,select标签加载数据后由js控制搜索请求链接。 内容:搜索行主要包括A标签 和select标签,a标签生成时带href,具体内容...
  • banbianliushui
  • banbianliushui
  • 2017年03月15日 15:07
  • 191

JAVAWEB开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)

JSTL  JSTL简介: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用:   提供给Java Web开发人员一个标准通用的标签函数库 ...
  • haidaoduozhu
  • haidaoduozhu
  • 2017年02月07日 10:14
  • 2559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jsp自定义标签-----嵌套标签
举报原因:
原因补充:

(最多只允许输入30个字)