要为jsp引擎提供有关自定义标签(jsp 自定义标签 下拉菜单 怎么使用onchange事件)

本文目录
jsp 自定义标签 下拉菜单 怎么使用onchange事件
《javascript》
function test(){
}
《/javascript》
《select onchange="test();"》《/select》
JSP自定义标签什么样的写法可以让入力框中的值居右显示
《style type="text/css"》
input{text-align:right;}
《/style》
《form》
《input type="text" /》
《form》
这样为input标签添加一个简单的css样式就可以了。
使用text-align:left/center/right; 其中之一就可以调整文本的位置。
希望对楼主有帮助
标签文件在自定义标签中替代java源码
自定义标签主要用于移除Jsp页面中的Java代码
快速入门:使用自定义标签输出客户机的IP
移除jsp页面中的java代码,只需要完成两个步骤:
编写一个实现Tag接口的Java类,并覆盖doStartTag方法,把jsp页面中的java代码写到doStartTag方法中。
编写标签库描述符(tld)文件,在tld文件中对自定义标签进行描述。
完成以上操作,即可在JSP页面中导入和使用自定义标签。
查看tag接口api文档,分析自定义标签的执行流程。
自定义标签的创建步骤:
(1) 标签处理器——java类,实现Tag接口
(2) 编写.tld:
JSP页面中使用自定义标签
《dhw:aaa》
《dhw:viewIP》系统自动调用doStartTag()
《/dhw:viewIP》系统自动调用doEndTag()
《/dhw:aaa》
Tag接口的执行流程
JSP引擎将遇到自定义标签时,首先创建标签处理器类的实例对象,然后按照JSP规范定义的通信规则依次调用它的方法。
1、public voidsetPageContext(PageContext pc), JSP引擎实例化标签处理器后,将调用setPageContext方法将JSP页面的pageContext对象传递给标签处理器,标签处理器以后可以通过这个pageContext对象与JSP页面进行通信。
2、public void setParent(Tag t),setPageContext方法执行完后,WEB容器接着调用的setParent方法将当前标签的父标签传递给当前标签处理器,如果当前标签没有父标签,则传递给setParent方法的参数值为null。
3、public int doStartTag(),调用了setPageContext方法和setParent方法之后,WEB容器执行到自定义标签的开始标记时,就会调用标签处理器的doStartTag方法。
4、public int doEndTag(),WEB容器执行完自定义标签的标签体后,就会接着去执行自定义标签的结束标记,此时,WEB容器会去调用标签处理器的doEndTag方法。
5、public void release(),通常WEB容器执行完自定义标签后,标签处理器会驻留在内存中,为其它请求服务器,直至停止web应用时,web容器才会调用release方法。
自定义标签功能扩展
自定义标签除了可以移除Jsp页面中的java代码外,它还可以用于完成一些页面逻辑,例如:
通过自定义标签可以控制jsp页面某一部分内容是否执行。
例如:《c:if》标签
通过自定义标签可以控制标签后的jsp页面是否执行。
通过自定义标签可以控制jsp页面某一部分内容重复执行。
例如:《c:foreach》标签
通过自定义标签可以修改jsp页面内容输出。
tld文件中的四种标签体类型
EMPTY JSP scriptless tagdepentend
简单标签
由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。实现SimpleTag接口的标签通常称为简单标签。简单标签共定义了5个方法:
setJspContext方法
setParent和getParent方法
setJspBody方法
doTag方法
SimpleTag方法介绍
setJspContext方法
用于把JSP页面的pageContext对象传递给标签处理器对象
setParent方法
用于把父标签处理器对象传递给当前标签处理器对象
getParent方法
用于获得当前标签的父标签处理器对象
setJspBody方法
用于把代表标签体的JspFragment对象传递给标签处理器对象
doTag方法
用于完成所有的标签逻辑,包括输出、迭代、修改标签体内容等。在doTag方法中可以抛出javax.servlet.jsp.SkipPageException异常,用于通知WEB容器不再执行JSP页面中位于结束标记后面的内容,这等效于在传统标签的doEndTag方法中返回Tag.SKIP_PAGE常量的情况。
SimpleTag接口方法的执行顺序
当web容器开始执行标签时,会调用如下方法完成标签的初始化
WEB容器调用标签处理器对象的setJspContext方法,将代表JSP页面的pageContext对象传递给标签处理器对象。
WEB容器调用标签处理器对象的setParent方法,将父标签处理器对象传递给这个标签处理器对象。注意,只有在标签存在父标签的情况下,WEB容器才会调用这个方法。
如果调用标签时设置了属性,容器将调用每个属性对应的setter方法把属性值传递给标签处理器对象。如果标签的属性值是EL表达式或脚本表达式,则WEB容器首先计算表达式的值,然后把值传递给标签处理器对象。
如果简单标签有标签体,容器将调用setJspBody方法把代表标签体的JspFragment对象传递进来。
执行标签时:
容器调用标签处理器的doTag()方法,开发人员在方法体内通过操作JspFragment对象,就可以实现是否执行、迭代、修改标签体的目的。
JspFragment类
javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段,这段JSP片段中不能包含JSP脚本元素。
WEB容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody方法把JspFragment对象传递给标签处理器对象。JspFragment类中只定义了两个方法,如下所示:
getJspContext方法
用于返回代表调用页面的JspContext对象.
public abstractvoid invoke(java.io.Writer out)
用于执行JspFragment对象所代表的JSP代码片段
参数out用于指定将JspFragment对象的执行结果写入到哪个输出流对象中,如果传递给参数out的值为null,则将执行结果写入到JspContext.getOut()方法返回的输出流对象中。(简而言之,可以理解为写给浏览器)
invoke方法详解
JspFragment.invoke方法可以说是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容、是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出。例如:
在标签处理器中如果没有调用JspFragment.invoke方法,其结果就相当于忽略标签体内容;
在标签处理器中重复调用JspFragment.invoke方法,则标签体内容将会被重复执行;
若想在标签处理器中修改标签体内容,只需在调用invoke方法时指定一个可取出结果数据的输出流对象(例如StringWriter),让标签体的执行结果输出到该输出流对象中,然后从该输出流对象中取出数据进行修改后再输出到目标设备,即可达到修改标签体的目的。
自定义标签制作步骤:
1.扩展TagSupport
2.标签所对应的tld文件配置
3.在JSP页面引用tld配置文件并使用标签
标签制作常用方法说明:
doStartTag()和doEndTag()返回值处理:
SKIP_BODY (0) :跳过了开始和结束标签之间的代码。
EVAL_BODY_INCLUDE(1):将body的内容输出到存在的输出流中
SKIP_PAGE(5): 忽略剩下的页面。
EVAL_PAGE隐含(6):继续执行下面的页
Test.jsp
《!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"》
《html》
《head》
《title》My JSP ’Test.jsp’ starting page《/title》
《/head》
《body》
This is my JSP page. 《br》
Date : 《%= new java.util.Date().toString() %》 《br》
File : 《input value="《%= request.getServletPath() %》" /》
《/body》
《/html》
为了将这个这个Test.jsp改成自定义标签方法,我们分别使用简单标签和内容标签两种不同的方式实现。
什么是自定义标签具体的分类
自定义标签是可重用的元件程式码,并且允许开发人员为复杂的操作提供逻辑名称。那么你对自定义标签了解多少呢?以下是由我整理关于什么是自定义标签的内容,希望大家喜欢!
自定义标签的概念
一般我们说自定义标签是指JSP自定义标签。自定义标签在功能上逻辑上与javaBean 类似,都封装Java 程式码。 JSP开发人员使用标签库建立标签.标签库是按照功能或实现进行分组的自定义标签的 *** 。
网路上常见的CMS内容管理系统都是采用模板的形式来实现,基本上所有的CMS系统都有一套自己的模板标签书写方法,简称自定义标签。
1.标签Tag:
标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP档案支援多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的
2.标签库Tag library:
由一系列功能相似、逻辑上互相联络的标签构成的 *** 称为标签库。
3.标签库描述档案Tag Library Descriptor:
标签库描述档案是一个XML档案,这个档案提供了标签库中类和JSP中对标签引用的对映关系。它是一个配置档案,和web.xml是类似的。
4.标签处理类Tag Handle Class:
标签处理类是一个Java类,这个类继承了TagSupport或者扩充套件了SimpleTag介面,通过这个类可以实现自定义JSP标签的具体功能
自定义标签的分类
自定义JSP标签
1. 《% @ taglib prefix=”someprefix” uri=”/sometaglib” %》
为了使到JSP容器能够使用标签库中的自定义行为,必须满足以下两个条件:
1从一个指定的标签库中识别出代表这种自定义行为的标签
2找到实现这些自定义行为的具体类
第一个必需条件-找出一个自定义行为属于那个标签库-是由标签指令的字首Taglib Directive’s Prefix属性完成,所以在同一个页面中使用相同字首的元素都属于这个标签库。每个标签库都定义了一个预设的字首,用在标签库的文件中或者页面中插入自定义标签。所以,你可以使用除了诸如jsp,jspx,java,servlet,sun,sunw它们都是在JSP白皮书中指定的保留字之类的字首。
uri属性满足了以上的第二个要求。为每个自定义行为找到对应的类。这个uri包含了一个字串,容器用它来定位TLD档案。在TLD档案中可以找到标签库中所有标签处理类的名称
2. 当web应用程式启动时,容器从WEB-INF资料夹的目录结构的META-INF搜寻所有以.tld结尾的档案。也就是说它们会定位所有的TLD档案。对于每个TLD档案,容器会先获取标签库的URI,然后为每个TLD档案和对应的URI建立对映关系。
在JSP页面中,我们仅需通过使用带有URI属性值的标签库指令来和具体的标签库匹配。
CMS自定义标签
CMS的自定义标签格式大同小异,以动易CMS为例,标签写法如下:
{$Skin_CSS}
{$MenuJS}
{$ShowLogo180,60} 自定义标签的分类

更多文章:
he agreed to help(用need to do sth.和agree to do sth. 造句)
2026年8月31日 01:00
instr函数的返回值(关于vb中InStr函数的一个小问题)
2026年1月26日 22:30
slcp是什么意思(matlab.*和matlab. s有什么区别)
2026年1月3日 12:00
db2数据库update后想恢复(你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗可以给联系方式我请教一下)
2026年9月17日 12:00
assert python用法(python:assert_raises() 怎么用啊,有哪些参数 请说得详细些,先谢谢了!)
2026年7月11日 08:30
this is it歌词好诡异(Turn The Lights On的歌词翻译)
2025年7月26日 02:30
tabletennis安卓游戏(table tennis touch多人游戏时提示game center断开链接怎么解决)
2025年8月8日 17:15
迷你qq头像(2021头像可爱呆萌男生,寻找一些头像小男孩的那种)
2026年2月14日 13:00













