赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

用JSP定制标签创建超连接的方法(二)

发布时间:2007.12.28 04:42     来源:赛迪网    作者:执木

标签的名字是multi, util.tags.MultiLinkTag是实现该标签功能的类,该类被称作标签处理器,按照JSP定制标签规范该处理器需要实现特定的接口。想了解更多有关资料,可以去SUN官方网站查阅document.tion。
  为了方便学习,该标签还是模仿了HTML的标记,并有下列属性:
  ?ID, 标签ID.这将被用来创建HTML元素以支持动态菜单,对于本页面该标签ID必须是唯一的。
  ?href. 说明URL地址的属性,也类似于HTML。
  ?metalinks, XML文件的名称,包含嵌入在主连接里的连接信息。该文件分为几部分,用来设置每个连接,并且每一部分必须有名字属性,这类似于前面提高的标签ID.
  ?onmouseover。 一个可选项,用来说明当鼠标悬在下拉图标上或者点击了它时,是否弹出一个菜单。如果没有设置该项为true则取消鼠标悬停在图标上时的作用。
  JSP页面代码里使用multilink.tld定义的标签需要声明一个前缀,就像是HTML里的标记,我们在此也声明一个前缀”a”,这样multi标签的完整名称为,下面我们用一个实例来展示一下该标签的使用:
   
  
    
      

       NASA's High-Speed Research program is developing a new 
              onmouseover="true">high-speed civil transport
       passenger jet that is environment-friendly and economically viable.
       The aircraft will have a cruise speed of
       Mach 2.4, and will feature an
              onmouseover="false">external vision system
       for low-speed operations, eliminating the need for a conventional
       windshield or drooping nose.
      


    
  
  该标签是如何在浏览器里面发挥它的作用的呢?请继续往下看。
  当通过URL来访问该页面时,浏览器截取请求,通过处理JSP页面,用标签处理器(类util.tags.MultiLinkTag)执行后产生的内容取代标签,标签处理器解析XML文件(embedded_links.xml或者该文件是jsp文件),收集一些嵌入连接的信息并以纯HTML发送到浏览器,下面是embedded_links.xml文件:
  
  
    
             text="Overview of NASA's HSCT program"/>
             text="HSCT project objectives and motivation"/>
             text="NASA's High Speed Research Page"/>
             text="HSCT visualization"/>
             text="Affordable supersonic travel"/>
             text="What does it look like?"/>
    
    
             text="The external visibility system concept"/>
             text="Cockpit with an artificial view"/>
             text="What does it look like?"/>
    
  
  最后我们大体看一下JSP标签的执行。标签有一个体,标签处理器继承自javax.servlet.jsp.tagext.BodyTagSupport.,并且它仅实现了doStartTag()和doAfterTag()这两个方法,doStartTag()方法仅返回EVAL_BODY_TAG,指明标签体需要评价,doAfterTag()方法处理所有自定制标签的操作,他返回SKIP_BODY,知名标签体已经不存在并不再被请求。标签体就是JSP标签打开和关闭元素之间的那部分。
  下面是标签处理器的简略的代码文件,可以去这里(source code)下载完整的代码:
  public class MultiLinkTag extends javax.servlet.jsp.tagext.BodyTagSupport
  {
    // Initialize variables and define setters
    ...
  
    public int doStartTag() throws JspException {
      // Indicate that we're interested in evaluating the tag's body
      return EVAL_BODY_TAG;
    }
  
    public int doAfterBody() throws JspException {
      // Process the tag's body and the embedded links
      // found in the XML document.
      ...
  
      // Don't need the tag's body any more.
      return SKIP_BODY;
    }
  }
  一旦标签处理器有错误,可以通过点击主连接来恢复它,下图是jsp页所显示的:
  
  点击"high-speed civil transport"超连接可以转到他所在的地址,把鼠标悬停在旁边的下拉图标上,会弹出个菜单,正如上图所示,你可以选一项然后会转到相应的地址,鼠标离开菜单后,弹出菜单自动消失。
  该功能已在Internet Explorer 5.0+ 和 Netscape Navigator 6.0+.成功测试并通过,在其他浏览器上还没这项功能。
  
  讨论: 
  多地址连接技术对于许多WEB使用者来说还是比较新颖的,假如用户们不愿用一些新思想,让他们接受一些完全的新导航功能也是一种挑战,因此现在采用基于现有的大家都熟悉的导航菜单来解决这个问题。在菜单系统里用户可以在一个主题里做一些选择,根据他们的选择转到相应的地方。
  多地址连接使得用户有所选择。这样就减少了由于用户访问一些不相关的连接所消耗的时间和流量,并且能独立于HTML文本页面的内容存储连接信息~,以使得页面设计者可以独立于HTML文本去改变这些连接信息,这让人突发奇想到了动态超文本,即根据用户的需要来改变超文本。例如,页面设计师们改变连接以使其与用户联系更密切。
  最后,下拉图标也是非常重要的。他从视觉上区分了一般的超连结和嵌入连接式的超连接,另外,onmouserover功能使得用户不需要点击图片,直接把鼠标悬在图标上就可以显示菜单。
  
  总结:
  本文描述了JSP定制标签扩充HTML超链接功能,也可以在.net平台上采用ASP.NET定制服务控制器来实现该功能
  随着网络信息流量的日益增长,更方便的网页导航是必需的,可以增加些低成本而又能丰富WEB的改进。每天都有上百万的人浏览网页,所以很多事情需要做以使得网络更加强大更有使用价值,好让用户更好体验到上网的乐趣,真正的感触到网络生活的魅力所在!  
      (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· J2EE综合:关于Config参数和Context参数 (12-27) · 用JSTL标签访问list且判断list的选中项 (12-27)
· Java入门:初学者因该了解内存优化编程 (12-27) · Java语言深入--关于java的输入输出 (12-27)
· 使用Annotation设计持久层 (12-27) · 程序人生--一个程序员应该注意的问题 (12-26)
· 初学入门:一个完备的数据库连接池类 (12-26) · Java的九大特点 能帮助你很快了解java (12-26)
· 一篇不错的介绍Java Socket编程的文章 (12-26) · 程序员在职场中很费解的话题-什么叫精通? (12-26)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统