- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSP自定义标签实例.doc
JSP自定义标签实例 文章分类:Web前端 JSP自定义标签实例?在JSP编程中,Struts一般用来处理form和业务逻辑,Struts中使用了很多自定义标签,如html、bean等,但很多时候我们还是需要使用 % java code % 这样的语句来操作一些输出。为了减少这种代码,可以创建自定义标签。????? 一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发人员自己实现。换句话说,你只需把实现了业务逻辑的类继承TagSupport或者BodyTagSupport,再做一些特别的工作,你的类就是一个Tag。并且它自己负责和jsp页面的交互,不用你多操心。?下面介绍如何创建一个自定义标签。?一.编写java类继承TagSupport或TagSupport?1) 提供属性的set方法,?此后这个属性就可以在jsp页面设置。以jstl标签为例 <c:out value=/>,这个value就是jsp数据到tag之间的入口。所以tag里面必须有一个setValue方法,具体的属性可以不叫value。例如setValue(String data){this.data = data;}?这个“value”的名称是在tld里定义的。取什么名字都可以,只需tag里提供相应的set方法即可。?2)处理 doStartTag 或 doEndTag?? 这两个方法是 TagSupport提供的。 还是以<c:out value=/>为例,当jsp解析这个标签的时候,在“<”处触发 doStartTag 事件,在“>”时触发 doEndTag 事件。通常在 doStartTag 里进行逻辑操作,在 doEndTag 里控制输出。?下面是一个简单的例子?Java代码?package com.test.tag;???import java.io.IOException;???import javax.servlet.jsp.JspTagException;???import javax.servlet.jsp.tagext.BodyContent;???import javax.servlet.jsp.tagext.BodyTagSupport;???/**??* PermissionBodyTag 根据是否有权限显示body内容??*/??public class PermissionBodyTag extends BodyTagSupport {?????? boolean permission;?????? public boolean isPermission() {?????????? return permission;?????? }?????? public void setPermission(boolean permission) {?????????? this.permission = permission;?????? }?????? public int doStartTag() throws JspTagException {?????????? if (permission) {?????????????? return EVAL_BODY_INCLUDE;?????????? } else {?????????????? return SKIP_BODY;?????????? }?????? }?????? public int doEndTag() throws JspTagException {?????????? System.out.println(doEndTag);?????????? try {?????????????? if (bodyContent != null) {?????????????????? bodyContent.writeOut(bodyContent.getEnclosingWriter());?????????????? }else{?????????????? }?????????? } catch (IOException e) {?????????????? throw new JspTagException(IO ERROR: + e.getMessage());?????????? }?????????? return EVAL_PAGE;?????? }?????? public v
文档评论(0)