基于JSP 自定义标签使用实例介绍
添加JSP自定义标签:
先添加一个tld文件到WEB-INF文件夹中
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun./xml/ns/j2ee" xmlns:xsi="http://.w3./2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun./xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>myTag</description>
<display-name>JSTL core</display-name>
<tlib-version>1.0</tlib-version>
<short-name>web</short-name>
<uri>http://.web.</uri>
<tag><!-- 一个tag标签对应一个自定义tag标签类 -->
<description>MyTag</description>
<name>when</name>
<tag-class>.example.when</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
引用规则:
<%@ taglib uri="http://.web." prefix="web"%>
定义错误处理页面:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/errors/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/errors/error1.jsp</location>
</error-page>
自定义标签执行流程:
SimpleTagSupport
/ Jsp引擎遇到简单类,实例化该类;
调用setJspContext,把页面pageContext传递给标签处理类;
调用setParent把父标传递进去,如果没有,传递null
调用setJspBody方法,把封装了标签体JspFragment传递给标签处理器类
执行页面中的自定义标签,doTag()方法;-->执行完成,销毁对象
/
JspFragment jf = this.getJspBody();
jf.invoke(this.getJspContext().getOut());//如果不显示则不进行处理
--------------------------------------------------------------------
public class tagShowOrNot extends TagSupport {
public int doStartTag() throws JspException {
return Tag.EVAL_BODY_INCLUDE;//显示body
//return Tag.SKIP_BODY;//隐藏body
//Tag.EVAL_PAGE;//显示page
//Tag.SKIP_PAGE;//隐藏page
}}
TagSupport
/编写一个实现TagSupport的类;
在tld文件中对标签处理器类进行描述(tld文件的位置:WEB-INF下)
在jsp页面中导入和使用标签
jsp执行过程中遇到自定义标签时,先实例化该类;
然后执行方法setPageContext()-->setParent()-->doStartTag()
如果有标签体,一般会执行标签体;doEndTag()-->整个标签执行完后一般会执行:release()
控制整个jsp页面是否执行;
控制jsp页面某一部分内容是否执行;
控制jsp页面内容重复执行;
修改jsp页面内容输出;
/
//该方法在执行标签体后,执行doEndTag()方法之前执行,直到该方法返回IterationTag.SKIP_BODY;
public int doAfterBody() throws JspException {
time--;
System.out.println("重复" + time);
if (time > 0) {
return IterationTag.EVAL_BODY_AGAIN;
} else
return IterationTag.SKIP_BODY;
}
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程