简单标签

简单标签
SimpleTag
最大的简化:
将传统方式的doStatTag(),doEndTag,doAfterBody()等方法简化成一个doTag()方法

doTag():传统方式可以对标签的最终显示进行修改,hello->HELLO,核心是有一个缓冲区
但是简单方式没有缓冲区。如何修改显示内容?流


javax.servlet.jsp.tagext.JspFragment类:代表一块JSP元素(该块 不代表scriplet,因此简单方式的tld文件中<body-content>不能是JSP)

JspFragment中有个invoke(Writer varl)方法,入参是“流”,即如果要修改显示内容,只需要修改此流

invoke(Writer varl):每调用一次invoke()方法,会执行一次标签体
SimpleTagSupport的getJspBody()可以获取JspFragment对象
SimpleTagSupport的getJspContext()可以获取jsp一些内置对象:
getJspContext()返回值是JspContext对象,是JSP内置对象的入口对象PageContext的父类
getJspContext()->JspContext->转换成子类PageContext
PageContext就是所有JSP内置对象的入口,即可以获取一切JSP内置对象
条件选择;
当某一个条件满足时,再执行某个标签体
传统标签:如果条件不满足,让doStartTag()的返回值为0
简单标签(不允许写scriplet<%...%>):如果条件不满足,不调用invoke()即可。

posted @ 2020-06-20 16:48  myyismyy  阅读(115)  评论(0编辑  收藏  举报