Jsp简单标签库开发
2014-11-20 21:52
288 查看
Jsp简单标签库开发,是指从Jsp2.0开始,使用SimpleTag接口所开发的标签。大大简化了标签开发的工作。
1、Jsp页面
2、标签实现类
3、tld文件
1、Jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%--引用标签库 --%> <%@taglib uri="http://localhost:8080/st" prefix="st" %> //2、控制Jsp页面是否执行<br /> //写demo时,共用一个标签类冲突,注释了<br /> <%--<st:ctPage/>--%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP简单标签开发</title> </head> <body> <br /> <br /> <br /> //1、控制标签内包含的内容是否执行[start]<br /> //写demo时,共用一个标签类冲突,注释了<br /> <%--<st:viewContent> 看我有没有显示<br /> </st:viewContent>--%> //1、控制标签内包含的内容是否执行[end]<br /> <br /> <br /> <br /> //3、循环输出标签内容[start]<br /> //写demo时,共用一个标签类冲突,注释了<br /> <%--<st:forContent> 重复输出5次<br /> </st:forContent>--%> //3、循环输出标签内容[end]<br /> <br /> <br /> <br /> //4、操作标签内容[start]<br /> <st:opContent> Hello World! </st:opContent><br /> //3、操作标签内容[end]<br /> <br /> <br /> <br /> </body> </html>
2、标签实现类
import java.io.IOException; import java.io.StringWriter; import javax.servlet.jsp.JspException; import javax.servlet.jsp.SkipPageException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; public class MySimpleTag extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { //doTag1(); //doTag2(); //doTag3(); //1、获取Jsp标签内容所对应的JspFragment对象 JspFragment jf= this.getJspBody(); //2、实例化一个StringWriter对象,并将标签内容写入到此对象中 StringWriter sw = new StringWriter(); jf.invoke(sw); //3、将获取的标签内容 编辑后输出到Jsp页面 String content = sw.toString(); this.getJspContext().getOut().write(content + "@Yes!"); } private void doTag1() throws JspException, IOException { /* * 1、是否执行标签体内容 * 如果不执行标签内容 则将jf.invoke(null)注释即可 */ JspFragment jf = this.getJspBody(); jf.invoke(null); //null默认写到Jsp页面,也可以写成jf.invoke(this.getJspContext().getOut()); } private void doTag2() throws SkipPageException { /* * 2、是否执行Jsp页面内容 * 如果不执行Jsp页面 则抛出SkipPageException异常 * 如果不抛出异常则执行Jsp页面内容 */ //throw new SkipPageException(); } private void doTag3() throws JspException, IOException { /* * 3、循环输出标签内容 */ JspFragment jf = this.getJspBody(); for(int i = 0; i < 5; i++) { jf.invoke(null); } } }
3、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/j2ee/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>st</short-name> <uri>http://localhost:8080/st</uri> <tag> <name>viewContent</name> <tag-class>com.xuhu.web.tag.MySimpleTag</tag-class> <description>控制标签体是否执行</description> <!-- 注意此处和传统标签的JSP不同,简单标签需要写成scriptless --> <body-content>scriptless</body-content> </tag> <tag> <name>ctPage</name> <tag-class>com.xuhu.web.tag.MySimpleTag</tag-class> <description>控制Jsp页面是否执行</description> <!-- 注意此处无标签体 --> <body-content>empty</body-content> </tag> <tag> <name>forContent</name> <tag-class>com.xuhu.web.tag.MySimpleTag</tag-class> <description>循环输出标签内容</description> <!-- 注意此处和传统标签的JSP不同,简单标签需要写成scriptless --> <body-content>scriptless</body-content> </tag> <tag> <name>opContent</name> <tag-class>com.xuhu.web.tag.MySimpleTag</tag-class> <description>操作标签内容</description> <!-- 注意此处和传统标签的JSP不同,简单标签需要写成scriptless --> <body-content>scriptless</body-content> </tag> </taglib>
相关文章推荐
- javaweb学习总结(二十五)——jsp简单标签开发(一)
- JavaWeb总结二十六、jsp简单标签标签库开发(二)
- JavaWeb学习总结(二十六)——jsp简单标签标签库开发(二)
- javaweb学习总结(二十七)——jsp简单标签开发案例和打包
- JSP简单标签开发
- JSP简单标签带属性开发
- JavaWeb学习总结(二十五)——jsp简单标签开发(一)
- javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
- javaweb学习总结(二十五)——jsp简单标签开发(一)
- javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
- JavaWeb总结二十五、jsp简单标签开发(一)
- JSP简单标签开发
- javaweb学习总结(二十七)——jsp简单标签开发案例和打包
- javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
- javaweb学习总结(二十七)——jsp简单标签开发案例和打包
- 开发一个简单的JSP标签完整案例的步骤
- JSP简单标签的开发