tagsupportJSP自定义标签请教?

tagsupport  时间:2021-06-03  阅读:()

自定义标签怎么写的啊?

(1)编写JSP,在JSP中使用自定义标签。

(2)在web.xml中指定JSP中使用的标签的.tld(标签库描述文件)文件的位置。

(3).tld文件中指定标签使用的类。

3. 自定义标签的分类: (1)简单标签:如< mytag:helloworld/> (2)带属性标签:如<imytag:checkinput dbname = “<myBean.getDBName()>”/> (3)带标签体的标签: 在自定义标签的起始和结束标签之间的部分为标签体(Body)。

Body的内容可以是JSP中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。

<mytag:checkinput dbname = “<myBean.getDBName()>”> <mytag:log message=”Table Name”> <mytag:checkinput /> (4)可以被Script使用的标签: 定义了id和type属性的标签可以被标签后面的Scriptlet使用。

</P< p> <mytag:connection id = “oraDB” type = “DataSource” name = “Oracle”> <%oraDB.getConnection(); %> 4.接口及其他 实际上,自定义标签的处理类实现了Tag Handler对象。

JSP技术在javax.servlet.jsp.tagext中提供了多个Tag Handler接口,JSP1.2中定义了Tag、BodyTag、IterationTag接口,在JSP2.0中新增了SimpleTag接口。

JSP还提供了上述接口的实现类TagSupport、BodyTagSupport和SimpleTagSupport(SimpleTagSupport只在JSP2.0中才有)。

BodyTagSupport实现了BodyTag、Tag和IterationTag接口。

接口及其方法 Tag接口 方法 SimpleTag dotage Tag doStartTag,doEndTag,release IterationTag doStartTag,doAfterTag,release BodyTag doStartTag,doEndTag,release,doInitBody,doAfterBody

自定义tag怎么使用jstl的标签

首先我们自定义标签类:ViewIpTag [java] view plain copy .weijia.traditionaltag; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; /** * 自定义标签,然后将这个标签映射到这个类:mytag:viewIP * 记得将自定义的标签绑定到一个url上面,这个url一般是公司的网址 * */ public class ViewIpTag extends TagSupport{ private static final long serialVersionUID = 1L; @Override public int doStartTag() throws JspException { //内置一个pageContext对象,我们之前说到pageContext对象,它里面是封装了9个隐式对象 HttpServletRequest request = (HttpServletRequest)this.pageContext.getRequest(); JspWriter out = this.pageContext.getOut(); String ip = request.getRemoteAddr(); try { out.print(ip); } catch (IOException e) { throw new RuntimeException(e); } return super.doStartTag(); } } 自定义tld文件,mytag.tld [html] view plain copy JSTL 1.1 core library JSTL core 1.1 weijia /mytag Catches any Throwable that urs in its body and optionally exposes it. viewIP <.weijia.traditionaltag.ViewIpTag empty 这里我们将就自定义的标签类就注册好了,下面解释一下这些字段的含义: 首先看一下: 这个标签是指定我们定义标签的简称,这个作用不大 这个标签是给这个标签文件指定一个访问路径,这个路径我们在Jsp页面中引入这个标签的时候需要用到 这个标签就是指定我们自定义的标签类的全称 这个标签表明自定义标签是否有标签体内容(empty:没有,JSP:有)

.tld是什么文件

public class testTag extends TagSupport{ //your code}之后你在tld文件里配置一下<tag<nametestTag </name <tag-classtestTag</tag-class <descriptiontest</description <attribute <nameforward</name

如何创建使用jsp自定义标签

1 jsp自定义标签需要引入两个jar 分别是 javax.servlet.jsp.jarjavax.servlet.jar 2 建立tld文件,建议目录为WEB-INF下,tld文件结构为下图,uri为整个标签库的名称,可以理解为java类,每一个tag分支,可以理解为java类中的每一个方法,我们在调用jsp自定义标签的时候就和调用java类一样,通过类找方法。

tag分支重点要讲tag-class,该属性为该标签方法所指向的java类。

attribute为参数,相信属性看步骤三附图。

3 关于tld文件属性的说明,可以参考下图 4 将tld文件引入web.xml中,建议名称与tld文件标签库名称一致 5 编写jsp自定义标签类,该类继承TagSupport类,我们需要做的就是重写doStartTag,我们可以通过JspWriter将后台处理的东西直接输出到jsp页面。

当然了,输出的内容在实际操作中肯定经过了非常复杂的逻辑。

6 页面调用,首先需要引入标签,<%@ taglib uri="option" prefix="option"%> option为标签名 定义在tld文件中,引用之后就可以在页面调用自定义标签了,简单的一行代码。

即可实现一个grid的输出,且可以重复利用。

jsp自定义标签

我觉得上楼回答的不完全对,自定义标签,不一定就是tomcat给封装好了的,自己也可以实现接口,编写*.tld(标签库描述文件),然后标签创建成功,便可引入页面使用了。

下面截一段API与大家讨论: javax.servlet.jsp.tagext Interface JspTag All Known Subinterfaces: BodyTag, IterationTag, LoopTag, SimpleTag, Tag 从上一段API内容中可以看出JspTag接口下又有BodyTag, IterationTag, LoopTag, SimpleTag, Tag几个子接口。

然后以SimpleTag接口为例,分享set_等方法之用意: Method Summary(方法概要) void doTag() Called by the container to invoke this tag. 当容器调用该方法时,唤醒该标签 JspTag getParent() Returns the parent of this tag, for collaboration purposes. 返回该标签的父标签 void setJspBody(JspFragment jspBody) Provides the body of this tag as a JspFragment object, able to be invoked zero or more times by the tag handler. 把JspFragment对象作为body提供给这个标签,能够被tag管理器调用0或多次。

void setJspContext(JspContext pc) Called by the container to provide this tag handler with the JspContext for this invocation. 设置上下文 void setParent(JspTag parent) Sets the parent of this tag, for collaboration purposes. 设置该标签的父标签 最后,一系列set方法,我觉得可以说成是对标签属性的设置

JSP自定义标签请教?

自定义JSP标签需要继承TagSupport类,然后在里面重写doEndTag()方法,框架大概如下: import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; public class Test extends TagSupport { public int doEndTag() throws JspException { try { pageContext.getOut().print("Test"); } catch(Exception e) { e.printStackTrace(); } return SKIP_BODY; } public void release() { super.release(); } } 然后创建Tag Library的描述文件xx.tld,在tld文件里定义标签,接着在web.xml文件里面加入<taglib>元素,最后在jsp里面引用就可以了

hostkvm:7折优惠-香港VPS韩国VPS,8折优惠-日本软银、美国CN2 GIA、新加坡直连VPS

hostkvm本月对香港国际线路的VPS、韩国CN2+bgp线路的VPS正在做7折终身优惠,对日本软银线路、美国CN2 GIA线路、新加坡直连线路的VPS进行8折终身优惠促销。所有VPS从4G内存开始支持Windows系统,当然主流Linux发行版是绝对不会缺席的!官方网站:https://hostkvm.com香港国际线路、韩国,7折优惠码:2021summer日本、美国、新加坡,8折优惠码:2...

Digital-VM80美元新加坡和日本独立服务器

Digital-VM商家的暑期活动促销,这个商家提供有多个数据中心独立服务器、VPS主机产品。最低配置月付80美元,支持带宽、流量和IP的自定义配置。Digital-VM,是2019年新成立的商家,主要从事日本东京、新加坡、美国洛杉矶、荷兰阿姆斯特丹、西班牙马德里、挪威奥斯陆、丹麦哥本哈根数据中心的KVM架构VPS产品销售,分为大硬盘型(1Gbps带宽端口、分配较大的硬盘)和大带宽型(10Gbps...

修罗云50元/月起香港大宽带NAT VPS,香港沙田建站2核2G5M仅70元/月起

修罗云怎么样?修罗云是一家国内老牌商家,修罗云商家以销售NAT机器起家,国内的中转机相当不错,给的带宽都非常高,此前推荐的也都是国内NAT VPS机器。今天,云服务器网(www.yuntue.com)小编主要介绍一下修罗云的香港云服务器,适合建站,香港沙田cn2云服务器,2核2G,5M带宽仅70元/月起,同时香港香港大带宽NAT VPS低至50元/月起,性价比不错,可以尝试一下!点击进入:修罗云官...

tagsupport为你推荐
elem数据结构中elem表示什么?尽量详细点,谢啦.at89s52单片机AT89S52单片机和AT89C51单片机的区别jstz请帮忙翻译activitygroupactivityGroup子activity跳转的问题activitygroupTabHost ActivityGroup里面activity里的webview是不是不支持一些JS比如 alert?移动硬盘文件或目录损坏且无法读取移动硬盘提示文件或目录损坏且无法读取!embed函数c语言“sqrt函数”的用法是什么?web推送怎样关闭网页推送第三方支付系统什么是第三方支付第三方支付系统有哪些第三方支付系统开发公司
php主机空间 河北服务器租用 过期备案域名查询 中文域名申请 net主机 hawkhost优惠码 themeforest 缓存服务器 bash漏洞 搜狗12306抢票助手 web服务器架设软件 个人域名 数字域名 vip购优汇 php空间购买 100mbps shopex主机 网站加速软件 免费ftp 中国域名 更多