自定义标签(实例)

 

自定义标签(实例)

1、  自定义if…..else文件

a)         Jsp代码:(主体)

  <body>

    <csdn:choose>

    <csdn:when test="${user==null}">aaa</csdn:when>

    <csdn:otherwise>bbbb</csdn:otherwise>

    </csdn:choose>

  </body>

</html>

b)        ChooseTag.java (为子标签处理类提供访问text属性值的方法)

import java.io.IOException;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.JspFragment;

import javax.servlet.jsp.tagext.SimpleTagSupport;

public class ChooseTag extends SimpleTagSupport {

    private boolean flag=false;

public boolean isFlag() {return flag;}

    public void setFlag(boolean flag) {this.flag = flag;}

    public void doTag() throws JspException, IOException {

       JspFragment jf=this.getJspBody();

       jf.invoke(null);} }

 

c)        WhenTag.java(获取父标签对应的处理类实例,调用父类的isFlag()方法,根据其返回值判断是否执行标签的主体)

import java.io.IOException;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.SimpleTagSupport;

public class WhenTag extends SimpleTagSupport {

    private boolean test;

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

    public void doTag() throws JspException, IOException {

       //获取父标签对象

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

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

           //处理该标签

           this.getJspBody().invoke(null);

           parent.setFlag(true);}}}

d)      OtherwiseTag.java

import java.io.IOException;

 

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

public class OtherwiseTag extends SimpleTagSupport {

 

    public void doTag() throws JspException, IOException {

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

    if(!parent.isFlag()){

       this.getJspBody().invoke(null);

       parent.setFlag(true);}}}

你可能感兴趣的:(c,jsp,user,null,Class,import)