自定義標籤(實例)

 

自定義標籤(實例)

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);}}}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章