首页 > 代码库 > 2_Jsp标签_传统标签功能简介
2_Jsp标签_传统标签功能简介
1传统标签接口关系:
2功能简介
3代码测试
1.标签体内容控制 StartTag
package com.tag;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;public class EvalBodyTag extends TagSupport { private boolean show; public void setShow(boolean show){ this.show = show; } public int doStartTag() throws JspException { // TODO Auto-generated method stub if(show==true) return super.EVAL_BODY_INCLUDE; else return super.SKIP_BODY; }}
2.标签结束后的处理 EndTag
package com.tag;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;public class ShowPageTag extends TagSupport { private boolean show; public void setShow(boolean show){ this.show = show; } @Override public int doEndTag() throws JspException { System.out.println(show); if(show==true) return super.EVAL_PAGE; else return super.SKIP_PAGE; } @Override public int doStartTag() throws JspException { return super.EVAL_BODY_INCLUDE; }}
3. 标签内容处理完后--doAfterBody
package com.tag;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.IterationTag;import javax.servlet.jsp.tagext.Tag;import javax.servlet.jsp.tagext.TagSupport;public class RepeatTag extends TagSupport{ private int count; public void setCount(int count){ this.count = count; } public int doAfterBody() throws JspException { count--; if(count>0) return RepeatTag.EVAL_BODY_AGAIN; else return RepeatTag.SKIP_BODY; } public int doStartTag() throws JspException { return Tag.EVAL_BODY_INCLUDE; } }
4. 内容格式化
package com.tag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.BodyContent;import javax.servlet.jsp.tagext.BodyTagSupport;public class BodyContentTag extends BodyTagSupport { @Override public int doEndTag() throws JspException { BodyContent body = this.getBodyContent(); String bc = body.getString(); bc = bc.toUpperCase(); try { this.pageContext.getOut().write(bc); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } return super.doStartTag(); } @Override public int doStartTag() throws JspException { return super.EVAL_BODY_BUFFERED; }}
4 tld文件约束:
<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>A tag library exercising SimpleTag handlers.</description> <tlib-version>1.0</tlib-version> <short-name>SimpleTagLibrary</short-name> <uri>http://self-tag-with-hello</uri> <tag> <name>helloWorld</name> <tag-class>com.tag.HelloWorldTag</tag-class> <body-content>empty</body-content> <attribute> <name>name</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>evalbody</name> <tag-class>com.tag.EvalBodyTag</tag-class> <body-content>JSP</body-content> <attribute> <name>show</name> <required>true</required> </attribute> </tag> <tag> <name>showpage</name> <tag-class>com.tag.ShowPageTag</tag-class> <body-content>JSP</body-content> <attribute> <name>show</name> <required>true</required> </attribute> </tag> <tag> <name>repeatbody</name> <tag-class>com.tag.RepeatTag</tag-class> <body-content>JSP</body-content> <attribute> <name>count</name> <required>true</required> </attribute> </tag> <tag> <name>changeContent</name> <tag-class>com.tag.BodyContentTag</tag-class> <body-content>JSP</body-content> </tag> </taglib>
5页面结果展示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。