jsp自定义标签switch、case、default ---尚未写完
来源:互联网 发布:ws2812灯软件 编辑:程序博客网 时间:2024/06/05 00:39
定义switch
package tag;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
public class Switch extends TagSupport {
private boolean subtagsuccess;
public Switch(){
subtagsuccess=false;a
}
/*
* 当遇到switch标签时,所有的子标签都不执行。
* @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
*/
public int doStartTag()throws JspTagException{
subtagsuccess=false;
return EVAL_BODY_INCLUDE;
}
/*
* 该方法有子标签调用,表示是否可以执行自身的标签。
*/
public synchronized boolean getpermission(){
return (!subtagsuccess);
}
public synchronized boolean subtagsuccessed(){
return subtagsuccess=true;
}
/*
* 销毁到该方法。
* @see javax.servlet.jsp.tagext.TagSupport#release()
*/
public void release(){
subtagsuccess=false;
}
}
定义case
package tag;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class Case extends TagSupport{
private boolean cond;
public Case(){
cond=false;
}
public void release(){
cond=false;
}
public void setCond(boolean cond){
this.cond=cond;
}
public int doStartTag()throws JspTagException{
Tag parse=getParent();
/*
* 判断是否可以执行本身。
*/
if(!((Switch)parse).getpermission())
return SKIP_BODY;
/*
* 如果条件是真的,通知父类。表示已经有了一个符合条件的。
* 否则,忽略标签体。
*/
if(cond){
((Switch)parse).subtagsuccessed();
return EVAL_BODY_INCLUDE;
}
else{
return SKIP_BODY;
}
}
}
定义default
package tag;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class Default extends TagSupport {
public void Default(){
}
public int doStartTag()throws JspTagException{
//return 0;
Tag defaultcase=getPareant();
if(!((Switch)defaultcase).getpermission())
return SKIP_BODY;
((Switch)defaultcase).subtagsuccessed();
return EVAL_BODY_INCLUDE;
}
}
tld文件
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, 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>swicth</short-name>
<display-name>simpley swicth</display-name>
<description>simple jsp tag3 </description>
<tag>
<name>swicth</name>
<tag-class>tag.Switch</tag-class>
<body-content>jsp</body-content>
<description>simple jsp tag 03</description>
</tag>
<tag>
<name>case</name>
<tag-class>tag.Case</tag-class>
<body-content>jsp</body-content>
<description>simple jsp tag 03</description>
<attribute>
<name>cond</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<!-- true表示可以用接受表达式;false:反之。 -->
</attribute>
</tag>
<tag>
<name>default</name>
<tag-class>tag.Default</tag-class>
<body-content>jsp</body-content>
<description>simple jsp tag 03</description>
</tag>
</taglib>
webx.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<jsp-config>
<taglib>
<taglib-uri>/jsptag3.tld</taglib-uri>
<taglib-location>/WEB-INF/jsptag3.tld</taglib-location>
</taglib>
</jsp-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
package tag;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
public class Switch extends TagSupport {
private boolean subtagsuccess;
public Switch(){
subtagsuccess=false;a
}
/*
* 当遇到switch标签时,所有的子标签都不执行。
* @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
*/
public int doStartTag()throws JspTagException{
subtagsuccess=false;
return EVAL_BODY_INCLUDE;
}
/*
* 该方法有子标签调用,表示是否可以执行自身的标签。
*/
public synchronized boolean getpermission(){
return (!subtagsuccess);
}
public synchronized boolean subtagsuccessed(){
return subtagsuccess=true;
}
/*
* 销毁到该方法。
* @see javax.servlet.jsp.tagext.TagSupport#release()
*/
public void release(){
subtagsuccess=false;
}
}
定义case
package tag;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class Case extends TagSupport{
private boolean cond;
public Case(){
cond=false;
}
public void release(){
cond=false;
}
public void setCond(boolean cond){
this.cond=cond;
}
public int doStartTag()throws JspTagException{
Tag parse=getParent();
/*
* 判断是否可以执行本身。
*/
if(!((Switch)parse).getpermission())
return SKIP_BODY;
/*
* 如果条件是真的,通知父类。表示已经有了一个符合条件的。
* 否则,忽略标签体。
*/
if(cond){
((Switch)parse).subtagsuccessed();
return EVAL_BODY_INCLUDE;
}
else{
return SKIP_BODY;
}
}
}
定义default
package tag;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class Default extends TagSupport {
public void Default(){
}
public int doStartTag()throws JspTagException{
//return 0;
Tag defaultcase=getPareant();
if(!((Switch)defaultcase).getpermission())
return SKIP_BODY;
((Switch)defaultcase).subtagsuccessed();
return EVAL_BODY_INCLUDE;
}
}
tld文件
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, 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>swicth</short-name>
<display-name>simpley swicth</display-name>
<description>simple jsp tag3 </description>
<tag>
<name>swicth</name>
<tag-class>tag.Switch</tag-class>
<body-content>jsp</body-content>
<description>simple jsp tag 03</description>
</tag>
<tag>
<name>case</name>
<tag-class>tag.Case</tag-class>
<body-content>jsp</body-content>
<description>simple jsp tag 03</description>
<attribute>
<name>cond</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<!-- true表示可以用接受表达式;false:反之。 -->
</attribute>
</tag>
<tag>
<name>default</name>
<tag-class>tag.Default</tag-class>
<body-content>jsp</body-content>
<description>simple jsp tag 03</description>
</tag>
</taglib>
webx.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<jsp-config>
<taglib>
<taglib-uri>/jsptag3.tld</taglib-uri>
<taglib-location>/WEB-INF/jsptag3.tld</taglib-location>
</taglib>
</jsp-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
- jsp自定义标签switch、case、default ---尚未写完
- jsp自定义标签实现java的switch……case实例
- switch与case及default
- switch...case...default...执行顺序
- JavaScript -- switch,case,break,default
- js switch case default 的用法
- C#语言中switch模块case default
- switch case break default 判断语句
- javascript switch default写在case前
- 关于switch-case的default坑
- switch case语句中的default语句
- switch(A){case a: break;........default :}用法
- 【Java基础知识】switch表达式、case穿透、default、switch结束条件
- jsp自定义标签case、when的简单实现
- switch中的非case非default语句会执行吗?
- switch case default 语句的的使用以及注意事项
- switch case 没有break 和default 位置乱放分析
- 【那些年遇到过的面试题】switch case default
- iw的安装
- Spring整合Struts2简单示例(转)
- 敏捷测试理论以及实践 - 7(全文完)
- 对JAVA多态的理解
- 精通HADOOP(八) - MAPREDUCE任务的基础知识 - 配置作业
- jsp自定义标签switch、case、default ---尚未写完
- 程序员面试100题之十四:强大的和谐
- android 之得到新打开Activity 关闭后返回的数据
- MFC命名规则
- sql server行级锁,排它锁,共享锁的使用
- 人品与能力的心态问题
- PostgreSQLで全角半角を区別しない問い合わせ
- 主流报表制作工具之王者争夺战:功能大PK系列之集中对比
- 获得google地图上指定位置的坐标