用标签库提高开发速度

原创 2004年04月08日 21:39:00

用标签库提高开发速度

为了更容易、更快速地进行开发,Struts提供了功能同其它JSP标签库类似的五个标签库,即:HTML、Bean、Logic、Template和Nested。本系列文章通过三个部分来讲述HTML标签库。第一部分讲述如何配置一个Struts应用程序来运用这个标签库,并介绍了第一组标签;第二部分讲述了第二组标签;第三部分以一个应用程序为例,讲述如何运用这个标签库。学习本系列文章的前提是,你已经对Struts有了基本的了解了。如果你不太了解,请阅读我撰写的关于Struts的系列文章(共六个部分)。

HTML标签库主要用来显示HTML元素,如果不用这种方法,你就必须用HTML标签来指定它们。从表面上看,这个标签库很简单。但是通过深入研究,我们就会发现它很强大。例如,它可以为我们在HTML表单的一个特定输入元素中放置重点内容生成JavaScript,或为客户端输入验证生成脚本。而且,你可以用它通过一行代码来处理错误。然而,在将这个标签库用于你的Struts应用程序前,你需要做些简单的准备工作。

配置应用程序来运用标签库
在运用Struts HTML标签库前,你需要通过三个步骤来配置一个Struts应用程序。

1. 在部署描述符(web.xml文件)中注册标签库:  <taglib>
   <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
   <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
 </taglib>


上面的代码就告诉了servlet container有关Struts HTML标签库的情况,以及在哪里可以找到标签库的TLD文件。

2. 确信将struts-html.tld文件复制到WEB-INF目录中。你不用担心标签库类文件,因为它们已经包含在struts.jar文件中了。

3. 在运用标签库的每个JSP页面中,插入下面的<taglib>指示符:<%@ taglib uri="/WEB-INF/struts-html.tld"
prefix="html" %>



另外,你也可以运用struts-html.tld文件来学习它所支持的标签以及每个标签可以带有哪些属性。

运用一个自定义的标签库通常是很容易的:只要遵循前面讲述的步骤就行了。然而,有些标签库包含一些原则,这些原则使我们在运用这些标签库时并不那么容易。Struts HTML标签库就是其中之一。有些标签很简单、很容易使用;然而,另外有些标签则取决于Struts应用程序中的其它标签或其它元素。

我将HTML标签库中的标签大致分成了两类:简单、容易使用的标签,我把它们称为“独立的标签”,第二类是必须通过一个form标签来使用的标签。我把第二类的标签简单地称为与form相关的标签。本文主要讲述独立的标签,在本系列文章的第二部分我将讲述与form相关的标签。

HTML标签库包含几个很容易使用的独立的标签。下面讲述几个比较重要的标签。

<html>标签
<html>标签是HTML标签库中最容易的标签。它有两个属性:locale和xhtml,两者都不是必需的。下面的代码选自一个运用<html>标签的JSP页面:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html locale="true">
<head>
<title>Welcome</title>
</head>

<body>
Hello World!
</body>
</html:html>




注意,我们没有用标准的<html>元素,而是用了<html:html>标签。其中第一个html指的是前缀,第二个是<html>标签本身。而且我们也用了locale属性。JSP页面将显示成:<html lang="en">
<head>
<title>Welcome</title>
</head>

<body>
Hello World!
</body>
</html>




注意,<html:html locale=“true”>中的locale属性在生成的HTML页面中被转换成了lang=“en”。生成的结果取决于Struts应用程序所位于的服务器的locale。如果你将应用程序部署到一个不同locale的服务器,你不需要改变代码。Locale会自动调整。

<base>标签
<base>标签显示一个HTML元素,用一个href属性表示所包含的JSP页面的绝对位置。只有当这个标签是内嵌在一个head标签部分时,它才有效。例如这个JSP页面:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html locale="true">
<head>
<title>Welcome</title>
<html:base/>
</head>

<body>
Hello World!
</body>
</html:html>




会转换成以下形式:<html lang="en">
<head>
<title>Welcome</title>
<base href="http://www.domain.com/myStrutsApp/testing.jsp">
</head>

<body>
Hello World!
</body>
</html>




<img>标签
<img>标签用来生成一个HTML <IMG>标签。它最重要的属性有: · page:图象文件相对于模块的路径;前面必须带有一个斜线。
· height:图象的高度。
· width:图象的宽度。
· alt:如果找不到图象,显示的文本。


例如:<html:img page="/logo.gif" height="50"
width="200" alt="Company Logo"/>


会转换成:<img src="/myStrutsApp/logo.gif" height="50"
width="200" alt="Company Logo">




<link>标签
<link>标签会生成一个超链接。例如标签:<html:link page="/index.html">Click
here</html:link>


会转换成:<a href="/myStrutsApp6/index.html">Click
here</a>




<errors>标签
<errors>标签的易于使用性通常会掩盖其真正的强大功能。通过一个简单的<html:errors/>标签,你就可以在一个JSP页面上显示完全自定义的错误信息。

这个标签检查Request对象的属性集合来查找一个reserved key。如果它找到一个reserved key,它就假设这个key是一个String、或是一个String数组(它包含在模块的MessageResources中查找的message keys)、或是类型为org.apache.struts.action.ActionErrors的一个对象。

如果在应用程序资源中存在相应的信息,那么就可以用下面这些可选的message keys: · errors.header:相应的信息在错误信息的单独列表前显示。
· errors.footer:相应的信息在错误信息的单独列表后显示。
· errors.prefix:相应的信息在错误信息的单独列表前显示。
· errors.suffix:相应的信息在错误信息的单独列表后显示。


IOS开发-提升app性能的25条建议和技巧

本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员。这是他的个人网站:http://www.marcelofabri.com/,你还可以...
  • liulanghk
  • liulanghk
  • 2015年06月07日 21:39
  • 11622

如何提高大型工程的编译速度?

这里的大型工程是指源代码个数超过1万以上的c/c++或者java的混合工程,而android AOSP就是这样一个很贴切的例子。android整个系统的编译非常耗时,动辄一个小时以上,搜索了一下关于提...
  • lewif
  • lewif
  • 2016年06月27日 16:22
  • 1205

如何提高MySQL查询速度

1、选取最适用的字段属性 MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽...
  • allen_fan_11
  • allen_fan_11
  • 2013年10月29日 20:37
  • 1732

python小技巧及速度提高

Python 3: 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10]...
  • wangzhaotongalex
  • wangzhaotongalex
  • 2016年04月05日 22:32
  • 847

提高程序运行效率的10个简单方法

对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行...
  • ljianhui
  • ljianhui
  • 2013年07月01日 12:06
  • 46282

VS2010提升运行速度方法(转)

教大家几个技巧可以稍微让你觉得它没那么卡!! 一、VS2010选项视觉体验设置 工具->选项->环境 视觉体验的勾选都去掉。不解释,你懂得。(不过还是建议打开硬件加速) 二、禁用Intel...
  • yizhou2010
  • yizhou2010
  • 2016年09月23日 10:33
  • 721

加快MATLAB运行速度的三个方法

转自:http://www.matlabfan.com/viewthread.php?tid=893&page=1&fromuid=1217#pid7449 一、 遵守Performance A...
  • sanji123456
  • sanji123456
  • 2013年04月15日 17:59
  • 2739

如何提高MATLAB的运算速度

将提高MATLAB运算速度的途径总结为以下几点: 1. 硬件方面:CPU配置高一些; 2. 利用Profiler评估程序,查找出函数花费时间较多的地方优化; 3. 尽量少使用for或...
  • zhuxiaohui93
  • zhuxiaohui93
  • 2015年12月23日 09:38
  • 1850

提高solr的搜索速度

之前是使用12台机分布式搜索,1台为主机做索引并分发给子机,8台做大索引搜索服务,3 台做小索引搜索服务,配置基本是内存在4-8G,cpu:2-8core的服务器,索引的大小为8G。搜索的响应时间 是...
  • wgw335363240
  • wgw335363240
  • 2014年07月18日 09:50
  • 2611

如何提高FPGA的运行速度

载两篇文章: 《如何提高FPGA的运行速度》 对于设计者来说,当然希望我们设计的电路的工作频率(在这里如无特别说明,工作频率指FPGA片内的工作频率)尽量高。我们也经常听说用资源换速度,用流水...
  • shengzhuzhu
  • shengzhuzhu
  • 2014年06月09日 21:56
  • 3604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用标签库提高开发速度
举报原因:
原因补充:

(最多只允许输入30个字)