JSTL笔记
来源:互联网 发布:交通流仿真软件 编辑:程序博客网 时间:2024/06/11 19:32
第2章 JSTL表达式
2.1运算符
2.1.1算术运算符
<td>\${1+1}</td>
使用“\”是为了使程序不要进行运算,而按照原样输出
2.1.2验证运算符
${empty input} 返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为null的表达式则被认为是空,即无元素的集合或数组。如果参数是对长度为0的String求值所得的结果,则empty运算符也将返回true。
2.2标量标记
2.2.1定义变量
(1)只定义变量名以及变量值,不指定scope(范围)
<c:set var=”username” value=”buda”></ c:set >
(2)将value的值存储到范围为scope的变量中
<c:set var=”username” value=”buda” scope=”page/request/session/application”></ c:set >
(3)将本体内容的数据存储到范围为scope的变量中
<c:set var=”username” scope=”page/request/session/application”>
本体内容
</ c:set >
2.2.2输出变量
<c:out>只用来显示数据的内容。
(1)通过在<c:out>中指定需要显示的值
<c:out value=”hello world!”/>
(2)通过escapeXml属性设置是否将value中的内容按照原样输出。
原样输出指的是JSP页面响应客户端请求时生成HTML文件是按照原样输出的。
(3)通过default属性来指定默认值。如果value的值为null,则显示default的值。
<c:out value=”${username}” default=”No data”/>
2.2.3删除变量
JSTL中使用<c:remove>来删除限制了作用域的变量,它获取两个属性。var属性指定待删除变量的名称,scope属性是可选的,它表示待删除变量来自哪个作用域,默认为page。
<c:remove var=”number” scope=”session”>
假如不指定scope,则< c:remove >会从page、request、session、application中顺序寻找是否存在名称为number的数据,如果找到了,则将它删除,如果没找到就不会有任何操作。
2.3表达式
2.3.1 .与[]运算符
EL通过.与[]运算符来存取数据。比如:
${applicationScope.user.username}
等价于
${ applicationScope.user.[“username”]}
二者也可以混合使用,例如:
${sessionScope.shoppingCart[0].price}
二者之间也有一定的差异:
(1)如果存取的属性名包含一些特殊字符,如“.”或者是“-”等非字母或数字的符号时,就必须使用[]。
(2)如果使用变量来传入,那么也就只能使用[]。
<%String data=”username”;%>
${ applicationScope.user.[data] }
下面的代码等效于上面的代码:
${applicationScope.user.username}
2.3.2 与存储有关的隐含对象
JSP中有隐含对象,同样在EL中也有自己的隐含对象。
先来介绍4个与存储范围有关的隐含对象,分别是applicationScope、sessionScope、requestScope、pageScope,类型都为java.util.map。这些隐含对象使用时和JSP中的pageContext、request、session、application一样。但是这4个隐含对象只能用来取得某个范围的属性值,即JSP中的getAttribute(String name),不能取得其他的信息。
(1)applicationScope对象:是指存储在服务器范围内,只要服务器不重启或移除变量,所有的页面可以得到变量值。
(2)sessionScope对象:是指一次会话范围内,如果用户不重新打开浏览器都是在一次会话范围内。所有的页面都可以得到变量值。
(3)requestScope对象:是指一次请求范围内,使用服务器端跳转都是属于一次请求范围。如果用户单击其他链接,那么这次请求就会结束,进入下一次请求,其他页面将无法得到变量值。
(4)pageScope对象:是指一个页的范围。
2.3.3 与输入有关的隐含对象
与输入有关的隐含对象有两个,分别为param和paramValues,用来取得用户的请求参数。在使用EL之前可以使用如下代码取得用户的请求参数:
request.getParameter(String name);
request.getParameterValues(name);
在使用EL时可以使用param和paramValues两者来取得用户请求参数。
使用param接受的数据所需要的参数只有一个值,但是如果参数有几个值,必须使用paramValues来接受参数。
第3章
3.1流程控制
3.1.1<c:if>标签的使用
<c:if>标签有两种语法格式。一种没有本体内容;令一种有本体内容。
(1)没有本体内容的<c:if>标签
<c:if test=”testCondition” var=”varName” [scope=”{page/request/session/application}]”/>
(2)有本体内容的<c:if>标签
<c:if test=”testCondition” var=”varName” [scope=”{page/request/session/application}]”>
本体内容
</if>
3.1.2<c:choose>、<c:when>、<c:otherwise>标签的使用
<c:choose>本身只能当<c:when>和<c:otherwise>的标签。其中可以有一个或多个<c:when>标签,有0个或多个<c:otherwise>的标签,其格式如下:
<c:choose>
···
<c:when test=”testCondition”>
</ c:when >
···
<c:otherwise>
</c:otherwise>
</c:choose>
3.2循环控制
3.2.1<c:forEach>标签的使用
<c:forEach>标签有两种语法格式。一种用来遍历集合对象的成员;另一种用来使语句循环执行指定次数。
(1)<c:forEach>遍历集合对象的成员语法格式如下:
<c:forEach [var=”varname”] items=”collectin” [varStatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]>
本体内容
</c:forEach>
(2)
3.2.2<c:forEach>标签取得数组中的值
3.2.3<c:forEach>标签取得简单集合的值
3.2.4<c:forEach>标签取得复杂集合的值
3.2.5<c:forEach>标签取得复杂Map的值
- jstl 笔记
- JSTL笔记
- jstl笔记
- jstl笔记
- JSTL 学习笔记
- JSTL 学习笔记
- JSTL学习笔记
- jstl学习笔记
- JSTL学习笔记
- JSTL display笔记
- jstl fmt标签笔记
- jstl学习笔记
- JSTL display笔记
- JSTL学习笔记
- JSTL学习笔记
- jstl学习笔记 (转摘)
- JSTL学习笔记
- jstl学习笔记
- 第三次C语言上机实验报告
- 第五次课后作业
- 编译内核和创建源码树
- 将日志信息(系统性能参数)记录到MongoDB --- 2:写入记录
- windows程序运行原理
- JSTL笔记
- PHP初学体会
- Ubuntu 12.10 安装 Eclipse
- C++ 实现简单的静态队列
- J2ME的List、TextBox,Ticker和Alert
- 关于System.arraycopy方法的使用
- Java乔晓松-oracle的多表查询
- Codeforecs 65D. Harry Potter and the Sorting Hat 一种新的记忆化搜索方式
- 安卓-开发工具之DDMS