概述
定义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>
最后
以上就是会撒娇乌龟为你收集整理的jsp自定义标签switch、case、default ---尚未写完的全部内容,希望文章能够帮你解决jsp自定义标签switch、case、default ---尚未写完所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复