- 浏览: 293325 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
bo_hai:
哎,不是原创呀!
dwr学习 -
JonyUabka:
呵呵,蛮有创意的哦~
Myeclipse中启动Weblogic9异常解决 zz -
wwwmmmbird:
1楼没有license.bea,下载一个。
Myeclipse中启动Weblogic9异常解决 zz -
wwwmmmbird:
非常感谢楼主,问题已解决!
<2010-8-20 上午0 ...
Myeclipse中启动Weblogic9异常解决 zz -
hnicypb:
收下。。。最近准备装个玩下。。。
楼主辛苦
[WinXP+VMware+Ubuntu]安装+VMwareTools+输入法+系统美化全攻略 zz
JSP中自定义标记符的使用 |
时间:2007-04-05 阅读:13 类型:转载 编辑:fly |
摘要 关键字 什么是标记
HELLO WORLD
在这里我们把,
<tagclass:login height="100" width="200"></tagclass:login>
在上例中就是一个JSP定制标记符。widtht、height是这个标记的属性。<!---->是一个标记库定义指令,在稍后我们将会讨论。在JSP中定制标记符,实质上就是以标记的形式封装了一个俱有独立功能的Java类。标记的使用减少了直接嵌入JSP页面的Java代码,方便了页面的布局,并且有利于代码的复用,提高了开发的效率。 JSP服务器解析标记的过程 Client: 表示客户端。 JSP-Server:JSP服务器。 JSP-Page:JSP页面。 TLD: 标记库描述文件,定义标记和标记的各种属性和处理文件等。 TagClass 标记处理程序 当一个用户访问一个JSP页面时,这个请求被发送到JSP服务器,JSP服务器会根据这个请求去调用相应的页面,如果这个页面中有自定义的标记, JSP服务就会根据页面指令 例子
<tagclass:login height="100" width="200"></tagclass:login>
描述 <!---->指令声明此JSP文件使用了自定义的标记,同时引用标记库, 也指定了他们的标记的前缀。 你必须在使用自定义标记之前使用<!---->指令。 属性 uri="URIToTagLibrary" :Uniform Resource Identifier (URI)根据标记的前缀对自定义的标记进行唯一的命名,URI可以是一个相对或绝对的路径。 标记符的处理程序(Tag handle) 让我们再看一下它的代码: package tagclass.login; import javax.servlet.jsp.tagext.TagSupport; import javax.servlet.jsp.*; import java.io.*; public class login extends TagSupport { public login() { super(); } public int doStartTag() throws JspTagException { JspWriter out = pageContext.getOut(); try { out.println("<applet codebase="applet/login/" height="100" width="200" code="login.class"></applet>"); } catch(Exception e) {
} return SKIP_BODY; } publicc int doEndTag()throws JsptagException { return EVAL_PAGE; } public void release() { super.release(); } public void setWidth(String language) { this.width = width; } public String getWidth() { return this.width; } public void setHeight(String height) { this.height=height; } public String getHeight() { return this.height; } private String width; private String height; } 从以上我们可以看出,实现一个简单的标记符处理程序有几个要求:①增加一个类,使之继承 java.Servlet.jsp.tagext.TagSupport类。这个类提供了java.Servlet.jsp.tagext.Tag接口所要求的所有的方法。另外,还需要使用一些基本的API,使JSP容器能够调用我们自己提供的标记符处理程序。②必须为每个标记符属性分别创建一个 get<attribute></attribute>和set<attribute></attribute>方法,JSP容器需要使用这些方法处理程序传递参数。③要为标记符处理程序创建一个构造器和自毁器。JSP需要使用构造器启动处理程序。自毁器是在realease()方法中定义的。在处理程序的生命周期结束时,需要调用自毁器释放所占用的资源。④创建两个名为doStartTag()和doEndTag()的方法,执行具体的处理和输出动作。这两个方法是在处理自定义标记符的起始位置和结束位置调用的。它们的返回值是在Tag Interface里定义的静态int,这几个静态值分别是: SKIP_BODY隐含0 :跳过了开始和结束标签之间的代码。 EVAL_BODY_INCLUDE隐含1:将body的内容输出到存在的输出流中 SKIP_PAGE隐含5 : 忽略剩下的页面。 EVAL_PAGE隐含6:继续执行下面的页 当然标记符也有它自己的缺点。很不方便的封装过程,有限的功能。对于一些不太复杂和功能单一的逻辑描述,需要传递的参数要求不高时,使用JSP标记,要方便的多。对于大多数的商业逻辑应用,还是使用bean要好的多,也宜于servlet控制。 附录:文章中所用示例的完整代码
<tagclass:login height="100" width="200"></tagclass:login>
标记符描述库:taglib.tld <!----> PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib></taglib> <tlibversion></tlibversion>1.0 <jspversion></jspversion>1.1 <shortname></shortname>tagclass <tag></tag> <name></name>login <tagclass></tagclass> tagclass.login.login
<info></info>
<attribute></attribute> <name></name>height <required></required>true <rtexprvalue></rtexprvalue>true
<attribute></attribute> <name></name>width <required></required>true <rtexprvalue></rtexprvalue>true
标记符处理程序:login.java import javax.servlet.jsp.tagext.TagSupport; import javax.servlet.jsp.*; import java.io.*; public class login extends TagSupport { public login() { super(); } public int doStartTag() throws JspTagException { JspWriter out = pageContext.getOut(); try { out.println("<applet codebase="applet/login/" height="100" width="200" code="login.class"></applet>"); } catch(Exception e) {
} return SKIP_BODY; } publicc int doEndTag()throws JsptagException { return EVAL_PAGE; } public void release() { super.release(); } public void setWidth(String language) { this.width = width; } public String getWidth() { return this.width; } public void setHeight(String height) { this.height=height; } public String getHeight() { return this.height; } private String width; private String height; } 标记符处理程序中所使用的Applet : login.java import java.awt.event.*; import java.applet.*; public class login extends Applet implements ActionListener { private String s_username; private String s_userpassword; private Button b_ok; private Button b_register; private Label l_username; private Label l_userpassword; private TextField t_username; private TextField t_userpassword; private GridLayout g_gridlayout; public void init() { b_ok=new Button("ok"); b_register=new Button("register"); l_username= new Label("name"); l_userpassword=new Label("password"); t_username=new TextField(); t_userpassword=new TextField(); b_ok.addActionListener(this); b_register.addActionListener(this); g_gridlayout=new GridLayout(3,2,10,10); this.setLayout(g_gridlayout); //this.setBackground(Color.blue); add(l_username); add(t_username); add(l_userpassword); add(t_userpassword); add(b_ok); add(b_register); } public void actionPerformed(ActionEvent ev) { String s_label=ev.getActionCommand(); if (s_label.equals("ok")) { t_username.setText("name"); } if (s_label.equals("register")) { t_userpassword.setText("password"); } } public void paint(Graphics g) { } } |
发表评论
-
js正则表达式zz
2007-09-20 10:36 1981<%-- js正则表达式 2007- ... -
如何阻止冒泡(zz)
2007-09-18 14:54 2465AJAX ... -
受信站点设置
2007-09-14 14:40 1531除了添加localhost到本地 还要把 安全级别里面的 通过 ... -
Memory Leakage in Internet Explorer - revisited(zz)
2007-09-13 15:33 2045Memory Leakage in Internet Exp ... -
ajax应用的基本流程zz
2007-09-03 00:24 1871ajax应用的基本流程 1、从web表单中获取需要的数据 2 ... -
Jsp中使用xmlhttp进行数据交互zz
2007-09-02 23:55 9701.客户端提交请求 Domain = " te ... -
weblogic培训笔记 zz
2007-08-30 08:41 3161weblogic培训笔记 [ ... -
Aptana使用之ecilpse monkey技巧
2007-08-26 22:22 5062首次原创,谢谢大家支持 现在很多ajax程序员使用Aptan ... -
Myeclipse中启动Weblogic9异常解决 zz
2007-08-24 17:49 6425Myeclipse中启动Weblogic9异常解决 出现这 ... -
所有weblogic下载
2007-08-24 11:31 6182所有weblogic版本下载 ... -
诡异的Tomcat
2007-08-21 17:32 1066下午陪个公司的应用网站系统 老是报org.apache.jas ... -
把外部文件配置成tomcat站点zz
2007-08-21 15:25 1560假设有D:\RegWeb站点,在Tomcat 5.0以上版本如 ...
相关推荐
在JSP的学习中,自定义标记应该是一个难点;然而他的作用确是不容忽略的;这是一个自定义标记的示例程序,希望通过这个程序,能够让你对自定义标记的使用有一个大致的了解。
jsp使用自定义标签taglib分页系列——完整例子
JSP自定义标签JSP自定义标签JSP自定义标签JSP自定义标签JSP自定义标签JSP自定义标签
自己整理的一些关于JSP自定义标记的资料
在jsp 中的自定义标签的使用的源代码,实用性很强的哟!希望各位能够喜欢
Java Server Page(JSP)是近几年发展起来的用于生成动态...提出了通过标记处理类可以解决嵌套的自定义标记中父标记如何完全包含子标记的问题,并以IF-ELSE-THEN形式的标记为例子,成功解决了在JSP中使用嵌套的自定义标记
本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...
jsp自定义标签jsp自定义标签jsp自定义标签
这是个实现ComputeSimpleTag标记的文件,该标记可以实现两个数字的加减乘除。自定义为,然后再输入两个数字就可以实现
jsp自定义标签jsp自定义标签jsp自定义标签jsp自定义标签
jsp自定义带属性的标签 jsp自定义带属性的标签
jsp初学者实例,以及分页封装,下拉框绑定值封装
文件包括jsp2.0 自定义标签的配置,和使用说明。 一看就明白。希望对你有用
jsp自定义迭代标签 jsp自定义迭代标签
jsp自定义嵌套标签 自定义嵌套标签的定义和使用