当前位置: 代码迷 >> Java Web开发 >> 自定义的if_else标签。这样可以吗?解决方法
  详细解决方案

自定义的if_else标签。这样可以吗?解决方法

热度:66   发布时间:2016-04-17 10:33:31.0
自定义的if_else标签。。。这样可以吗?
以下是我自己写的标签处理器类,用来实现嵌套的if_else,如
<my:choose>
  <my:if condition="...">
  ...
  </my:if>
  <my:else>
  <my:choose>
  <my:if condition="...">
  ...
  </my:if>
  <my:else>
  ...
  </my:else>
  </my:choose>
  </my:else>
<my:choose>
但实际使用的时候结果并不正确,请问是我的标签处理器写得有问题吗?

Java code
public class MyChooseTag extends BodyTagSupport{    private boolean executed;    public void setExecuted(boolean ed){        this.executed=ed;    }    public boolean getExecuted(){        return executed;    }    public int doStartTag() throws JspException{        executed=false;        return EVAL_BODY_INCLUDE;    }    public int doEndTag() throws JspException{        return EVAL_PAGE;    }}public class MyIfTag extends BodyTagSupport{    private boolean condition;    public void setCondition(boolean condition){        this.condition=condition;    }    public int doStartTag() throws JspException{        MyChooseTag parent=(MyChooseTag)this.getParent();        if(condition){            parent.setExecuted(true);            return EVAL_BODY_INCLUDE;        }        else{            parent.setExecuted(false);            return SKIP_BODY;        }    }    public int doEndTag() throws JspException{        return EVAL_PAGE;    }}public class MyElseTag extends BodyTagSupport{    public int doStartTag() throws JspException{        MyChooseTag parent=(MyChooseTag)getParent();            if(parent.getExecuted()){                return SKIP_BODY;            }            else{                return EVAL_BODY_INCLUDE;            }        }}

求教啊……多谢多谢!!

------解决方案--------------------
EL 表达式是从作用域取值吧,你这个算什么意思
------解决方案--------------------
主要是检查下是不是启用了EL为啥没生效。
  相关解决方案