Tip案例——else...if....
来源:互联网 发布:淘宝动漫周边 编辑:程序博客网 时间:2024/06/18 12:36
else … if …
<c:if test=””>aaa</c:if>——IfTag.java
<c:else>bbbb</c:else>——ElseTag.java
放在父标签中
让if和else的两个对象处理器共享一个boolean对象,来通知各自的标签处理器是否执行下面代码
<c:choose>——ChooseTag.java
<c:whentest=”${user != null}”>——WhenTag.java
This is my page
</c:when>
<c:other>——OtherTag.java
If user is not ex
</c:other>
</c:choose>
代码:
ChooseTag.java部分
private boolean flag=false;
//因为要在子类中读取flag的值,所有需要get方法
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
@Override
public void doTag() throws JspException, IOException {
// TODO Auto-generatedmethod stub
JspFragment jf=this.getJspBody();
jf.invoke(null);
}
Otherwise.java部分:
public void doTag() throws JspException, IOException {
// TODO Auto-generatedmethod stub
//获取父标签体对象
ChooseTag parent=(ChooseTag)this.getParent();
if(!parent.isFlag()){
this.getJspBody().invoke(null);
parent.setFlag(true);
}
}
WhenTag.java
private boolean test;
public void setTest(boolean test) {
this.test = test;
}
@Override
public void doTag() throws JspException, IOException {
// TODO Auto-generatedmethod stub
//父标签对象
ChooseTag parent=(ChooseTag)this.getParent();
if(test && !parent.isFlag()){//test是真,并且没有分支被执行过
//处理标签体
this.getJspBody().invoke(null);
parent.setFlag(true);
}
}
TestIf.jsp部分
<%session.setAttribute("user","zhangsan") ;%>
<br/>__________________________________<br/>
<!-- 测试if、else标签 -->
<c:choose>
<c:when test="${user !=null}">aaaaa</c:when>
<c:otherwise>bbbbbb</c:otherwise>
</c:choose>
c.tld部分
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//SunMicrosystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>c</short-name>
<uri>http://www.c.com</uri>
<tag>
<name>if</name>
<tag-class>com.hbsi.tag.IfTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>choose</name>
<tag-class>com.hbsi.tag.ChooseTag</tag-class>
<body-content>scriptless</body-content>
</tag>
<tag>
<name>when</name>
<tag-class>com.hbsi.tag.WhenTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>otherwise</name>
<tag-class>com.hbsi.tag.OtherwiseTag</tag-class>
<body-content>scriptless</body-content>
</tag>
</taglib>
- Tip案例——else...if....
- Tip案例——foreach
- 标签案例if else 标签:
- Javascript—if...else语句
- JavaScript Tip之:用&&和||来模拟if-else
- 黑马程序员—if-else与异常
- if, else if, else
- if else if else
- if (){}else if(){} else{}
- 【自定义标签开发】08-标签案例-开发if..else标签
- 采用if...else结构解决分段函数--源码案例
- C#系列教程——if-else定义及使用
- C#系列教程——if-else例子2
- 连续else if 语句——分段函数求值
- javaweb之自定义标签库——if else标签
- 自定义标签1——条件判断(if-else)
- 黑马程序员——if...else、switch语句
- Java语言——else if语句嵌套的优化
- GlusterFS集群文件系统
- 为pcm数据添加wav头
- js/jquery学习笔记(附百度统计初探??)
- 庖丁解牛TLD(二)——初始化工作(为算法的准备)
- 邮局选址问题 (第七题)
- Tip案例——else...if....
- mschart scrollbar 不能拖动
- android service学习列表
- 嵌套循环编写,信息树遍历!js编写
- 逻辑地址、线性地址(虚拟地址)、物理地址(有效地址、总线地址)
- 生活点滴记录-- 两点一线
- S3C2410下WinCE6.0的启动过程详解
- Results Generaton - Environment or Test Generator?
- Tip案例——foreach