运用_jstl例子 + EL表达式

EL表达式

      停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true:
<%@ page isELIgnored =”true|false” %>

*在EL表达式中可以使用圆括号来组织子表达式。比如${(1 + 2) 3}等于9
1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值, pageContextPageContext2<1< { param. username }
< %=user.getAddr( ) %> 等价于 user.addr< { requestScope.userlist }
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []
user.MyName {user[“My-Name”] }

如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个变量
Page、Request、Session、Application 没有找到时,就回传null。
相关域 首字母大写 家Scope
可用在所有的HTML和JSP标签中作用是代替JSP页面中复杂的JAVA代码.

EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有 param {paramValues}.
param. {paramValues}表示返回请求参数的一组

值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话

范围内的变量.applicationScope表示应用范围的变量.

jstl:
格式化时间
<%@ taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt” %>
……
<%
Date date = new Date();
pageContext.setAttribute(“d”, date);
%>

格式化数字
<%
double d1 = 3.5;
double d2 = 4.4;
pageContext.setAttribute(“d1”, d1);
pageContext.setAttribute(“d2”, d2);
%>



<%
// application.setAttribute(“name”, “zhangsan”);//Context域
// session.setAttribute(“name”, “lisi”);//session域
// request.setAttribute(“name”, “wangwu”); //request域
pageContext.setAttribute(“names”, “zhaoliu1”);//page域
%>

EL表达式
Session范围获取用户的性别 :${sessionScope.user.sex}
Jsp Scriptlet写法为: User user = (User)session.getAttribute(“user”);String sex = user.getSex( );

.与[]运算符
所代表的是一样的 sessionScope.user.sex {sessionScope.user[“sex”]}
混合使用 ${sessionScope.shoppingCart[0].price}

区别:
1.当要存储的属性名称中包含一些特殊字符 如.或- 等并非字母或数字的符号,就一定要使用[],例如
user[MyName]使EL { param.password1 = = param.password2 }
A?B:C {(1==2) ? 3 : 4}

EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

因为我们并没有指定哪一个范围的username,所以它会依序从Page(上下文)、Request(请求)、Session(会话)、Application(应用程序)范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。

EL表达式支持大部分Java所提供的算术和逻辑操作符:
操作符 描述
. 访问一个Bean属性或者一个映射条目
[] 访问一个数组或者链表的元素
( ) 组织一个子表达式以改变优先级
+ 加
- 减或负
* 乘
/ or div 除
% or mod 取模
== or eq 测试是否相等 5==5 {5eq5}
!= or ne 测试是否不等 5!=5 {5ne5}
< or lt 测试是否小于 3<5 {3lt5}

or gt 测试是否大于 3>53gt5<=orle {3<=5}或 3le5=orge {3>=5}或${3ge5}

&& or and 测试逻辑与
|| or or 测试逻辑或
! or not 测试取反
empty 测试是否空值

JSP EL支持下表列出的隐含对象:
隐含对象 描述
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 对象的参数,字符串
paramValues Request对象的参数,字符串集合
header HTTP 信息头,字符串
headerValues HTTP 信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext

2)简单访问Bean的属性:${user.name}
3)使用EL表达式可以输出MVC中的内容,代码简单
例如:Servlet的 doPost()或doGet()方法中,保存在作用域范围内
数据,可以在其它的JSP页面获取。如Servlet中有如下代码:
request.getSession().setAttribute(“loginedUser”,user);

在JSP页面中可以这样获取:${loginedUser.name}

7.EL显示Form表单请求参数信息

EL提供了两个与输入有关的隐含对象:param 和paramValues

用于获取表单提交的信息,用来解析request中的参数

格式: param. {paramValues.参数名}

等同于Java中的request.getParameter(“参数名”)或request.getParameterValues(“参数名”)

例子:
< c:forEach var=”name” items=”Collection” varStatus=”StatusName” begin=”begin” end=”end” step=”step”>
1)var设定变量名用于存储从集合中取出元素。
2)items指定要遍历的集合。
3)varStatus设定变量名,该变量用于存放集合中元素的信息。
4)begin、end用于指定遍历的起始位置和终止位置(可选)。
5)step指定循环的步长。
其中varStatus有4个状态属性(见表9-2)。
index int 当前循环的索引值
count int 循环的次数
fristboolean 是否为第一个位置
last boolean 是否为第二个位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值