站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题用JSP定制标签创建丰富的超连接(一)

用JSP定制标签创建丰富的超连接(一)

摘要: 用JSP定制标签创建丰富的超连接(一)
内容:
当今由HTML支持的连接机制()允许创建有唯一地址的
超连接,为了能在超连接上增加上下文相联系的地址,我们需要提供一些嵌入语(比如:
"download PDF version," "download Word version,"等等)或者使其跳转到页面的另一部分(比
如:a "Resources"),有时候会导使读者找不到上下文。如果我们把这些附加的地址潜入到
一个超连接里,就可以极大的提高页面的使用价值。这些嵌入的连接可以指向另外一些资源,
以使我们在同一区域聚集更多需要的信息。
为了能在一个超连接里嵌入一些连接,或许你可能会采用以下方式:
href1="embedded_destination1.html" text1="embedded hypertext1"
href2="embedded_destination2.html" text2="embedded hypertext2"
href3="embedded_destination3.html" text3="embedded hypertext3"
href4="embedded_destination4.html" text4="embedded hypertext4">main hypertext

或者以标签嵌套的方式,比如:
main hypertext
embedded hypertext1
embedded hypertext2
embedded hypertext3
embedded hypertext4

很不幸的是以这种方式根本不能达到要求也不符合HTML规范,如果这样的话会使得
头连接忽略附加的那些连接并且把这些连接罗列出来
大家都知道,使得用户能接受一些新功能的关键是在于它的可用性。因此,任何扩展连
接的方法都不是行之有效的,而应该采用一种类似于导航条的机制以使用户能轻而易举的理解和接受它。我们可以把一个下拉式的图标安置在超连接旁边,点击该图标就会显示那些嵌入的超连接。正如下图所示:
IMG upload/forum/2003829232726.gif[/IMG]
其实这就是我们所熟悉的动态菜单的思想,但它是和HTML文本内容相互独立。虽然每一个菜单仅含有几行HTML代码,但要为每一个含有多重目的文件的超连接都编写这样的代码显然是不切实际的。我们需要一种简单、正式、类似于标记形式的结构,并且易于理解和使用,就像是我们开头提到的那两种方式。这就需要开发者们把注意力集中在内容的是献上而不是规划上。
在我叙述我的解决方法之前,我先提一点,很多支持这种复杂的对于web. xml与它的相关链接标准的工作已经在进行中,比如:XLink 和 XPointer,这俩都是在W3C里定义的标准,允许支持丰富的超链接功能。但这种高级连接标准依然没有被流行的浏览器支持(Internet Explorer就不支持:XLink),另外,:XLink很复杂,对于一般的WEB站点是承受不起的。
下面将来简单阐释一下如何用JSP定制标签(custom Tags)结合XML来创建丰富的超连接。

JSP 标签(Tags)
JSP tags在JSP页面提供了一种可重用性的强大机制,已于读写和维护页面,它使得JAVA
程序员在JSP代码里可以写出XML样式的标签而不是scriptlets,与HTML标记配合更加协调。这些标签是服务器端的资源,这些资源包含了用来为页面产生内容的应用逻辑。这样就增强了用户界面和”内容生成“逻辑之间的划分。

自定义标签(The Custom Tag)
从此处下载源代码(Download the source code for this article)
创建一个定制标签,首先我们先建立一个描述符(TLD)文件,用来描述标签的名字和属性,并把它和一个CLASS文件联系起来。TLD文件是基于XML格式的,放在服务器端的web-inf目录里,这些文件是WEB容器用来验证JSP tags的,下面这个TLD文件名字是multilink.tld:

multi
util.tags.MultiLinkTag
<bodycontent>tagdependent</body>

id
true


href
true


text
true


metalinks
true


onmouseover
false


翻译—用JSP定制标签创建丰富的超连接之二

http://www.matrix.org.cn/article_view.asp?id=444
matrix开源技术经onjava授权翻译并发布.
如果你对此文章有任何看法或建议,请到Matrix论坛发表您的意见.
注明: 如果对matrix的翻译文章系列感兴趣,请点击oreilly和javaworld文章翻译计划查看详细情况
您也可以点击-javamen查看翻译作者的详细信息. Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd, scwcd
?
↑返回目录
前一篇: 用JSP定制标签创建丰富的超连接(二)
后一篇: Castor JDO: 一个欺诈的广告