电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> JSP教程
JSTL简化JSP编码-JSP教程,Jsp/Servlet
作者:网友供稿 点击:164
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
 

随着j2ee瘦客户机技术javaserver pages(jsp)在过去几年中的流行,独立开发人员已经创建了许多自定义的jsp标记库。虽然很多标记库是编写用来实现不同目标的,但它们往往也对迭代、条件及其他通用操作都提供了类似的解决方案。

为了减少对解决类似通用问题的独立标记库的需求,在java community process(jsr 52)的赞助下创建了jstl(javaserver pages standard tag library,jsp)标准标记库,为解决这些通用功能提供一个单一的标准解决方案。

jstl库

jstl特别为条件处理、迭代、国际化、数据库访问和可扩展标记语言(xml)处理提供支持。jstl还引入了expression language(el,表达式语言),极大地简化了对jsp中应用数据的访问和操作。jstl包括4个jsp 1.2自定义标记库,每一个都涵盖了一个特定的功能领域。

核心(core)标记库为日常任务提供通用支持,如显示和设置变量、重复使用一组项目、测试条件以及其他操作(如导入和重定向web内容)。

xml标记库提供了对xml处理和操作的支持,包括xml节点的解析、迭代、基于xml数据的条件评估以及可扩展样式表语言转换(extensible style language transformations,xslt)的执行。

国际化(internationalization)标记库支持多语种的应用程序。

数据库(database)标记库对访问和修改数据库数据提供标准化支持。

表1:jstl的四个标记库

功能领域 uri 前缀 例子
核心(core) http://java.sun.com/jstl/core c <c:tagname ...>
xml http://java.sun.com/jstl/xml x <x:tagname ...>
国际化(internationalization) http://java.sun.com/jstl/fmt fmt <fmt:tagname ...>
数据库(database) http://java.sun.com/jstl/sql sql <sql:tagname ...>

jstl入门

初步了解jstl的最好方法是访问apache网站--jakarta.apache.org,并下载jstl的参考实现。在apache站点还可找到详细的安装指南。可下载的参考实现是一个jar文件、文档和简单代码示例的组合包。

要在你的j2ee web应用程序中使用jstl,只需简单地将"lib"目录下的jstl jar文件复制到你应用程序的web-inf/lib目录下。要在一个特定的jsp中使用jstl标记,你还必须提供一个taglib指令。例如,要将"核心"jstl库导入到你的页面中,你应该在你的jsp顶端包含下面的指令,如下所示:

<%@ taglib uri="http://java.sun.com /jstl/core" prefix="c" %>

jstl的el支持

jstl的一个重要优势是它采用了简单的expression language(el),该语言提供一个访问和操作应用程序数据(如存储在servlet上下文中的数据)的简单方式。

el的语法很简单,而且比java中具有相同功能的表示要对用户更为友好。例如, pagecontext.getattribute("aname")表达式在el中就成了${aname}。所有的jstl标记在其属性值中都使用el表达式。el表达式在访问嵌套属性时使用${java.expression}或${ data.reference}格式。数据参考可以是对象及其属性或者对象及其属性数组:

${myobject.property}

数组存取操作符也用于以索引元素集合显示的数据,如java数组或java.util.list:

${mylist[2]}$

在el表达式中除了可以使用属性和数组元素操作符以及算术、关系和逻辑操作符以外,你还可以使用特别操作符来测试对象是否为空。

除了对象和数组存取,el还提供了一个完整的常用操作符集合,包括=、!、<、>、<=、>=、+、-、*、/等。

在任何jsp范围(页面、请求、会话或应用程序)中的对象都可以在el表达式中引用。例如,如果你有一个带有一个属性"ename"的java bean--employee,那么可以用el表达式${employee.ename}访问这个变量。

除了显式变量,el还提供了对隐式变量的请求和应答对象中的隐式变量的直接访问。例如,以下语句将访问一个名为"empname"的请求参数:

${param.empname}

即将推出的jsp 2.0和jstl 1.0都使用el。然而,jsp 2.0中使用的el稍有一点不同。jstl专家组(jsr-052)已经同意在即将推出的jstl维护版中使用el的jsp 2.0版本。

使用jstl核心标记库

jstl核心标记库为诸如显示、迭代和设置变量等操作提供了最常用的标记。下面,我们更详细地介绍一些最常用的jstl核心标记库。首先,在使用任何jstl核心标记之前,你需要将以下指令添加到你的jsp中:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

你最常使用的jstl操作之一是显示动态值。为了显示动态数据,核心库提供了c:out标记。c:out标记在一个页面中显示一个el表达式的值。例如:

first name: <c:out value="${employee.ename}" />

c:out的值属性还可以包含文本和表达式的组合:

<c:out value="first name: ${employee.ename}" />

(注意:当jsp 2.0提供对el的支持时,你无需再使用c:out操作,你可以直接在页面中嵌入jsp表达式。)

另一个操作是设置变量。为了在一个页面中设置变量,核心标记库提供了c:set标记。这个例子显示了将变量ename设置为参数"enameparm"的值:

<c:set var="ename" value="${param.
enameparm}" />

jstl核心标记库还提供了用于处理条件的标记。c:if处理简单的条件测试。计算test属性中布尔表达式的值;如果是真,计算主体中的内容。在下面的操作中,你还可以看到存储测试结果以备以后在页面(或者在别的地方,如果指定了其他的可选范围属性)中使用的可选的var属性:

<c:if test="${employee.salary <= 10000}" >
its time for a raise <c:out value="${employee.name">! </c:if>

下面,你可以看到jstl通过c:choose、c:when和c:otherwise对跳转逻辑的支持。你可以在一个选择(choose)标记中包含一组c:when操作;如果对c:when块中的表达式求值为真,则不对下面的c:choose操作中的测试进行计算。如果对c:when块中测试求值没有一个为真,则计算c:otherwise操作(如果存在的话)的内容:

<c:choose>
<c:when test="${dept.name == 
development}">
...
</c:when>
<c:when test="${dept.name == 
marketing}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>

c:foreach标记提供了一个对元素集合进行迭代的简单方法。如果你只想迭代集合中的部分元素,你可以分别指定开始和结束索引以及带有可选的开始、结束与步进属性的增量值。在下例中,我们对变量empnames中的一个集合的内容进行迭代;在每个循环中,下一个元素被放置在变量名中,并在c:foreach操作的主体中进行求值。

 
<table>
<c:foreach var="name" items="${empnames}">
<tr><td><c:out value="${name}"/></td></tr>
</c:foreach>
</table>

jstl核心标记库还可以简化异常处理。以前,你必须将java try/catch语句放置在java scriptlet中,或者在错误页面中提供它们。jstl通过c:catch标记提供了一个处理异常的高明方法,而无需使用scriptlet。

<c:catch>
   <!—. . . some set of nested jstl tags that fire an exception->

</c:catch>

可以在jakarta.apache.org的参考实现中提供的jstl文档中找到其他jstl标记库如xml、国际化和数据库标记库的例子。



文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·IReport与JasperReport开发详解一-JSP教程,Java技巧及代码
·JSTL(JSP标准标签库)介绍-JSP教程,资料/其它
·格式化输入日期时间控件 JieFormattedDateBox-JSP教程,Java技巧及代码
·JSTL简化JSP编码-JSP教程,Jsp/Servlet
·JUnit和单元测试入门简介-JSP教程,Java技巧及代码
·从数据库中读取一个图片并保存为一个图片文件-JSP教程,数据库相关
·Java Swing入门基础-JSP教程,Java技巧及代码
·IntelliJ IDEA培训-JSP教程,Java技巧及代码
·通过JSP的预编译消除性能瓶颈-JSP教程,Jsp/Servlet
·Java中利用JMF编写摄像头拍照程序-JSP教程,Java技巧及代码

最新文章
·J2ME中的时间处理方法
·J2ME播放声音流程简介
·J2ME开发之手机键盘使用注意问题
·J2ME 记录管理存储
·MVC模式在j2me项目中的应用(二)
·MVC模式在j2me项目中的应用(一)
·J2ME中使用记录存储系统(RMS)存储信息
·J2ME与MIDP开发(1)
·用简单的J2ME程序测试MIDlet的生命周期
·JAVA基础:提升JSP应用程序的七大绝招


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号