标签的实例

来源:互联网 发布:云南精准扶贫大数据app 编辑:程序博客网 时间:2024/05/21 04:19

•    开发<c:if>标签

packagecom.hbsi.web.tag;

 

importjava.io.IOException;

 

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.tagext.JspFragment;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

public classIfTag extends SimpleTagSupport {

         private boolean test;

 

         public void setTest(boolean test) {

                   this.test = test;

         }

 

         @Override

         public void doTag() throwsJspException, IOException {

                   // TODO Auto-generated methodstub

                   if(test){

                            //处理标签体

                            JspFragmentjf=this.getJspBody();

                            jf.invoke(null);

                   }

         }

        

}

•    开发<c:if><c:else>标签

packagecom.hbsi.web.tag;

 

importjava.io.IOException;

 

importjavax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.JspFragment;

importjavax.servlet.jsp.tagext.SimpleTagSupport;

 

public classChooseTag extends SimpleTagSupport {

         private boolean flag=false;

 

         public boolean isFlag() {

                   return flag;

         }

 

         public void setFlag(boolean flag) {

                   this.flag = flag;

         }

 

         @Override

         public void doTag() throwsJspException, IOException {

                   // TODO Auto-generated methodstub

                   //对标签体处理

                   JspFragmentjf=this.getJspBody();

                   jf.invoke(null);

         }

 

}

 

 

packagecom.hbsi.web.tag;

 

importjava.io.IOException;

 

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.tagext.SimpleTagSupport;

 

public classOtherwiseTag extends SimpleTagSupport {

 

         @Override

         public void doTag() throwsJspException, IOException {

                   // TODO Auto-generated methodstub

         ChooseTag parent=(ChooseTag)this.getParent();

         if(!parent.isFlag()){

                  

                   this.getJspBody().invoke(null);

                   parent.setFlag(true);

                  

         }

         }

        

 

}

 

 

packagecom.hbsi.web.tag;

 

importjava.io.IOException;

 

importjavax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

public classWhenTag extends SimpleTagSupport {

         private boolean test;

 

         public void setTest(boolean test) {

                   this.test = test;

         }

 

         @Override

         public void doTag() throwsJspException, IOException {

                   // TODO Auto-generated methodstub

                   //获取父标签对象

                   ChooseTagparent=(ChooseTag)this.getParent();

                   if(test&&!parent.isFlag()){

                            //处理标签体

                            this.getJspBody().invoke(null);

                            //有分支执行过设为真

                            parent.setFlag(true);

                           

                   }

                  

         }

 

}

•    开发迭代标签

•    package com.hbsi.web.tag;

•     

•    import java.io.IOException;

•    import java.lang.reflect.Array;

•    import java.util.ArrayList;

•    import java.util.Arrays;

•    import java.util.Collection;

•    import java.util.Iterator;

•    import java.util.List;

•    import java.util.Map;

•     

•    import javax.servlet.jsp.JspException;

•    import javax.servlet.jsp.tagext.SimpleTagSupport;

•     

•    public class ForeachTag extends SimpleTagSupport {

•         private Object items;

•         private String var;

•         public voidsetItems(Object items) {

•                   this.items =items;

•         }

•         public void setVar(Stringvar) {

•                   this.var = var;

•         }

•         @Override

•         public void doTag() throwsJspException, IOException {

•                   // TODOAuto-generated method stub

•                   //得到集合对象

•                   //Listlist=(List) items;

•                   //Iteratorit=list.iterator();

•                   Collectioncollection=null;

•                   if(itemsinstanceof Map){

•                            Mapmap=(Map)items;

•                            //两列的集合转换成单列

•                            collection=map.entrySet();

•                   }else if(itemsinstanceof Collection){

•                            collection=(Collection)items;

•                   }

•    //                     elseif(items instanceof Object[]){

•    //          

•    //                     Object[]objs=(Object[]) items;

•    //                     //倒换到一个一个集合中

•    //                     collection=Arrays.asList(objs);

•    //                    

•    //           }

•                   //应用反射机制

•                   elseif(items.getClass().isArray()){

•                            collection=newArrayList();

•                            intlength=Array.getLength(items);

•                            for(inti=0;i<length;i++){

•                                     collection.add(Array.get(items,i));

•                            }

•                           

•                   }

•                   Iteratorit=collection.iterator();

•                   while(it.hasNext()){

•                            Objectobj=it.next();//迭代出来的一个元素

•                            this.getJspContext().setAttribute(var,obj);

•                   this.getJspBody().invoke(null);

•                  

•                  

•                  

•                  

•                  

•                  

•                  

•                  

•                   }

•         }

•    }