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里面引用就可以了

pigyun25元/月,香港云服务器仅起;韩国云服务器,美国CUVIP

pigyun怎么样?PIGYun成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,期待我们携手共进、互利共赢。PIGYun为您提供:香港CN2线路、韩国CN2线路、美西CUVIP-9929线路优质IaaS服务。月付另有通用循环优惠码:PIGYun,获取8折循环优惠(永久有效)。目前,PIGYun提供的香港cn2云服务器仅29元/月起;韩国cn2云服务器仅22元/月起;美国CUVI...

腾讯云爆款秒杀:1C2G5M服务器38元/年,CDN流量包6元起

农历春节将至,腾讯云开启了热门爆款云产品首单特惠秒杀活动,上海/北京/广州1核2G云服务器首年仅38元起,上架了新的首单优惠活动,每天三场秒杀,长期有效,其中轻量应用服务器2G内存5M带宽仅需年费38元起,其他产品比如CDN流量包、短信包、MySQL、直播流量包、标准存储等等产品也参与活动,腾讯云官网已注册且完成实名认证的国内站用户均可参与。活动页面:https://cloud.tencent.c...

UCloud年度大促活动可选香港云服务器低至年134元

由于行业需求和自媒体的倾向问题,对于我们个人站长建站的方向还是有一些需要改变的。传统的个人网站建站内容方向可能会因为自媒体的分流导致个人网站很多行业不再成为流量的主导。于是我们很多个人网站都在想办法进行重新更换行业,包括前几天也有和网友在考虑是不是换个其他行业做做。这不有重新注册域名重新更换。鉴于快速上手的考虑还是采用香港服务器,这不腾讯云和阿里云早已不是新账户,考虑到新注册UCLOUD账户还算比...

tagsupport为你推荐
短信通道短信平台是什么?哪家比较好?webproxy无法连接Internet是什么原因视频压缩算法关于视频压缩的原理?chrome系统Chromenbsp;OS是操作系统吗?orphanremoval我的电脑开机时自检,出现许多这样的字样:Deleting orphan file record segment XXXX (XXXX代表数字)。awv请问awv是什么样的格式啊?12种颜色12种颜色都是代表什么数据挖掘项目什么是数据挖掘?从事相关的工作有什么要求?kjava谁能告诉我KJAVA是什么意思和普通的JAVA程序有什么区别?kjava通用KJava是什么意思
最新代理服务器 香港虚拟空间 免费域名 已备案未注册域名 中国域名网 免费动态域名 西安服务器 duniu 仿牌空间 香港cdn wdcp 表格样式 win8.1企业版升级win10 免费静态空间 搜狗12306抢票助手 云图标 网通服务器ip 湖南服务器托管 中国智能物流骨干网 炎黄盛世 更多