前言
从JSP 1.1规范开始,JSP 就支持在JSP 中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JST
L (JavaServer Pages Standard Tag Library )的诞生。作者:丁令(/www.DingL/)JSTL 简介
JSTL 是一个不断完善的开放源代码的JSP 标签库,是由apache 的jakarta 小组来维护的。JSTL 只能运行在支持JSP1.2和Servlet2.3
规范的容器上,如tomcat 4.x 。但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL 目前的最新版本为1.02,最终发布版为1.0。JSTL 包含两个部分:标签库和EL (Expression Language 表达式语言)语言。标签库目前支持四种标签:标签
URI
前缀示例
Core
java.sun/jstl/core c <c:tagname ...>XML processing
java.sun/jstl/xml x
<x:tagname ...>I18N capable formatting java.sun/jstl/fmt fmt <fmt:tagname ...>Database access (SQL)java.sun/jstl/sql
sql
<sql:tagname ...>
Core 支持JSP 中的一些基本的操作;XML processing 支持XML 文档的处理;
I18N capable formatting 支持对JSP 页面的国际化;
JSTL 标签库详细介绍资料
收藏
首页资讯空间学生论坛博客下载读书网摘程序员外包书店网址CT O俱乐部
乐知教育D9区
阿铮的箩筐
箩筐里面水汪汪
登录
注册
博客首页
全站
搜索
留言
用户操作
[留言] [发消息] [加为好友]
阿铮
ID :azheng270
共43505次访问,排名3671,好友7人,关注者26人。哪里有自由,哪里就是我的国家
阿铮的文章
原创 36 篇翻译 1 篇转载 32 篇评论 32 篇
订阅我的博客
Database access (SQL)支持JSP对数据库的操作。
由于本人水平有限,本文仅介绍Core标签,如有兴趣,可一起探讨其它三种标签的使用与扩充。
EL语言介绍
EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。
在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式${exp1}来进行调用。在属性值中使用表达式有三种方式。
1、 value属性包含一个表达式
<some:tag value="${expr}"/>
在这种情况下,表达式值被计算出来并根据类型转换规则赋值给value属性。比如:<c:out value="${username}" />中的${usernam
e}就是一个EL,它相当于JSP语句<%=Attribute(“username”)%>或<%=Attribute(“username”)%>
2、 value属性包含一个或多个属性,这些属性被文本分割或围绕
<some:tag value="some${expr}${expr}text${expr}"/>
在这种情况下,表达式从左到右进行计算,并将结果转换为字符串型(根据类型转换规则),并将结果赋值给value属性
3、 value属性仅仅包含文本
<some:tag value="sometext"/>
在这种情况下,字符串型属性value将根据类型转换规则转换为标签所希望的类型。
EL语言的操作符
取得某个对象或集合中的属性值
为了获得集合中的属性,EL支持以下两种操作
1.使用.操作符来获得有名字的属性。例如表达式${user.username}表明对象user的username属性
2.使用[]操作符来获得有名字或按数字排列的属性。
表达式${user["username"]}和表达式${user. username }含义相同
表达式${row[0]} 表明row集合的第一个条目。
在这里user是一个类的对象,它的属性username必须符合标准JavaBean的规范,即必须为username属性定义相应的getter、sette
r方法。
Empty操作符(空值检查)
azheng270的公告
文章分类
Article
DataBase
JAVA
JavaScript
存档
2010年01月(1)
2009年12月(1)
2009年11月(1)
2009年08月(1)
2009年05月(4)
2009年01月(1)
2008年12月(4)
2008年11月(1)
2008年10月(3)
2008年07月(1)
2008年04月(5)
2008年03月(14)
2008年02月(6)
2008年01月(8)
2007年12月(4)
2007年10月(9)
使用empty 操作符来决定对象、集合或字符串变量是否为空或null 。例如:${empty param.username}
如果request 的参数列表中的username 值为null ,则表达式的值为true 。 EL 也可以直接使用比较操作符与null 进行比较。如${param.firstname == null}。比较操作符操作符描述==或eq 相等检查!=或ne 不等检查<;或lt 小于检查>或gt
大于检查
<=或le 小于等于检查>=或ge 大于等于检查
数字运算符与逻辑运算符均与JAVA 语言相同,不再列表。Core 标签库1、 通用标签<c:out>
<c:out>标签用于在JSP 中显示数据,它有如下属性属 性描 述
是否必须缺省值
value 输出的信息,可以是EL 表达式或常量是无default
value 为空时显示信息
否无escapeXml 为true 则避开特殊的xml 字符集
否
true
例子:
您的用户名是: <c:out value=”${user.username}” default=”guest”/>
2007年10月(9)2007年06月(4)2007年05月(1)
显示用户的用户名,如为空则显示guest
<c:out value="${sessionScope.username}"/>
指定从session中获取username的值显示;
<c:out value="${username}" />
显示username的值,默认是从request(page)中取,如果request中没有名为username的对象则从session中取,session中没有则从application(servletContext)中取,如果没有取到任何值则不显示。
<c:set>
<c:set>标签用于保存数据,它有如下属性
属性描述是否必须缺省值
value要保存的信息,可以是EL表达式或常量否
target需要修改属性的变量名,一般为javabean的实例否无
property需要修改的javabean属性否无
var需要保存信息的变量否无
scope保存信息的变量的范围否page
el表达式获取session中的值如果指定了target属性, 那么property属性也必须指定。
例子:
<c:set value="${stinfo}" var="test2" scope=”session” />
将stinfo的值保存到session的test2中,其中test是一个javabean的实例,testinfo是test对象的属性。
<c:set target="${cust.address}" property="city" value="${city}"/>
将对象cust.address的city属性值保存到变量city中
<c:remove>
<c:remove>标签用于删除数据,它有如下属性
属性描述是否必须缺省值
var要删除的变量是无
scope被删除变量的范围否所有范围,包括page、request、session、application等
例子:
<c:remove var="test2" scope="session"/>
从session中删除test2变量。
2、流控制标签
<c:if>
<c:if>标签有如下属性
属性描述是否必须缺省值
test需要评价的条件,相当于if (...){}语句中的条件是无
var要求保存条件结果的变量名否无
scope保存条件结果的变量范围否page
<c:choose>
这个标签不接受任何属性
<c:when>
<c:when>标签有以下属性
属性描述是否必须缺省值
test需要评价的条件是无
<c:otherwise>
这个标签同样不接受任何属性
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论