带body的tag
tag处理类
如果tag标签含有内容,那处理方式会略微有些不同,而且还要视tag处理类是否要与body交互的情况而定。如果要与body交互,那我们认为tag处理类要可能要对body进行操作。
Tag处理类不与body交互
如果tag处理类不与body交互,tag处理类应该实现Tag接口或从TagSupport中派生,如果body要被计算,那么doStartTag方法应返回 EVAL_BODY_INCLUDE,否则应返回SKIP_BODY。
如果tag处理类要对body反复运算,则它应该实现IterationTag或从TagSupport中派生。如果tag处理类认为body还未计算完的话,那它的doStartTag方法和doAfterBody方法必须返回EVAL_BODY_AGAIN。
Tag处理类与body交互
如果tag处理类与body交互,那tag处理类应实现BodyTag接口或从BodyTagSupport中派生。这种tag处理类一般要实现doInitBody和doAfterBody方法。
Body 允许一些方法来读写它的内容。Tag处理类可以调用body内容的getString或getReader方法来从body中提取信息,也可用 writeOut(out) 方法来将body的内容写入到out对象中。其中out对象通过tag处理类的getPreviousOut方法来获得。
如果body的内容需要被计算,那么doStartTag方法必须返回EVAL_BODY_BUFFERED,否则,
http://www.kpwang.com/它将返回 SKIP_BODY。
doInitBody 方法
此方法在body内容已经设好,但未被计算之前被调用。你可以根据不同的body内容来制定初始化策略。
doAfterBody方法
此方法在body内容已被计算后进行调用。
和doStartTag方法一样,doAfterBody方法返回一个指示符指示是否要继续计算body,如果要继续计算,则doAfterBody应返回EVAL_BODY_BUFFERED,否则,它应返回SKIP_BODY。
release 方法
tag处理类调用此方法将它的状态重置为初始状态,并释放所有的私有资源。
以下的例子读取body的内容(其中含有一条sql语句),然后将它传递给一个对象,让它进行查询。由于此处body不须重新计算,所以doAfterBody会返回SKIP_BODY。
Public class QueryTag extends BodyTagSupport{public int doAfterBody() throws JspTagException{BodyContent bc = getBodyContent();//将body的内容以字符串的格式提取出来String query = bc.getString();//清除bodybc.clearBody();try{Statement stmt = connection.createStatement();Result result = stmt.executeQuery(query);}catch(SQLException e){throw new JspTagException(“queryTag: “ + e.getMessage() );return SKIP_BODY;}}
body-content元素
由于tag可能会有body,你必须用body-content元素来指定body内容的类型:
<body-content>JSP|tagdependent</body-content>
如果body的内容是定制的或内部的tag、脚本元素、或HTML广本,则归类为JSP类型。其他的类型,比如上面代码所述的?D?D将sql statement类传给 query tag的这种类型应该标为tagdependent。
注意:实际上body-content的值并不影响tag处理类对body内容的处理,它仅仅是被tag编辑工具用来描述此body的内容。
用tags定义脚本变量
tag处理类
tag 处理类负责创建或设置页面中定义的脚本变量,用pageContext.setAttribute(name,value,scope)或 pageContext.setAttribute(name,value)方法来实现。一般来说,tag处理类通过脚本变量的名称来获取它,脚本变量的名称一般可用get方法来获得。
分享到:
相关推荐
JSP 技术也允许你自定义 taglib,其实换句话说,taglib 可以看成是对 JSP 标 记的一种扩展,正如 xml 是对 html 的一种扩展一样。taglib 通常定义在tag 标签库中,这种 标签库存放着你自己定义的 tag 标签。简而言之...
struts taglib使用示例 struts taglib使用示例 struts taglib使用示例struts taglib使用示例 struts taglib使用示例
struts-taglib-1.3.10.jar struts-taglib.jar taglib.jar
taglib-1.11.1 taglib-1.11.1 taglib-1.11.1 taglib-1.11.1 taglib-1.11.1 taglib-1.11.1 taglib-1.11.1
idea需要的taglib标签库包,idea没有自带的taglib标签库,需要手动导入taglib包,并且配置对应的路径,进入“settings”设置选项,然后搜“DTD”然后如下图,在左边的标签选项卡找到“Schemas and DTDS” ,在url的...
讲述Taglib 自定义标签
json-taglib 使用方法,json:object json:Array json:Property
使用taglib类对多媒体文件进行解析,以获取多媒体文件的作者、流派、大小等。
iCP Training---105 TagLib.ppt
taglib 原理和实现.taglib 原理和实现.
分页工具page-taglib使用说明,分页工具page-taglib使用说明
这是pager-taglib的官方源码,但在采用官方的pager-taglib分页传输中文参数会出现乱码,所以我采用maven新建一个pager-taglib项目对pager-taglib的源码进行小小的改动,是他支持中文传输,更重要的是把源代码提供给...
使用pager-taglib分页,含有多种分页样式,jar包都有,只要导入就可以运行,内附有说明,java 语言的
pager-taglib的安装与使用pager-taglib的安装与使用pager-taglib的安装与使用
json-taglib 0.4.1 java json-taglib 0.4.1 java json-taglib 0.4.1 java
pager-taglib-2.0,pager-taglib-2.0,pager-taglib-2.0,java分页标签。
SSHConformity【display标签和taglib标签】,display标签,pager-taglib标签
Java ServerPages 1.1 taglib 标签使用文档
jsp pager-taglib 分页 jar 包下载
利用pager-taglib进行查询分页时需要添加该jar包:pager-taglib.jar