JSF复习系列(1)--EL表达式

本文详细介绍了JSF框架中的EL表达式及其使用方法,包括EL表达式的格式、作用及作用机制,并探讨了如何利用EL表达式简化对后台bean属性的获取与更新操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

  最近在写一个小东西,发现好多问题都出在JSF上,故决定趁着暑假好好研究一下JSF,尽管已经学JSF快一年了,现在还要回头来学习JSF,有点打脸的感觉,且不顾这些了,好好学。

二、EL表达式

2.1 EL是什么

  EL:Expression Language,为了更简单的获取或者更新(给后台bean赋值)后台bean的属性,而不必在再用复杂的Java来做这些工作而创造的EL表达式。
  EL的格式:

#{bean.property}

2.2 EL表达式的其他写法

#{loginBean.username }
#{loginBean['username'] }
#{loginBean[username] }
#{loginBean[#{username}] }
#{UserList[1] }
#{loginBean[user.username] }
#{loginBean['username'].name }
#{loginBean['username'].list[1] }
#{loginBean.username == 'arthinking' }
#{(loginBean.username == 'arthinking')?'相等':'不相等' }

2.3 EL的作用

  为了更简单的获取或者更新(给后台bean赋值)后台bean的属性,而不必在再用复杂的Java来做这些工作而创造的EL表达式。

2.4 EL的作用机制

  未知,待解决。

2.5 EL作用域

EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到RequestSessionApplication范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,当然EL表达式还会做出优化,页面上显示空白,而不是打印输出NULL。
  如下表:

属性范围(jstl名称)EL中的名称
PagePageScope
RequestRequestScope
SessionSessionScope
ApplicationApplicationScope

我们也可以指定要取出哪一个范围的变量:

范例说明
${pageScope.username}取出Page范围的username变量
${requestScope.username}取出Request范围的username变量
${sessionScope.username}取出Session范围的username变量
${applicationScope.username}取出Application范围的username变量

其中,pageScope、requestScope、sessionScope和applicationScope都是EL 的隐含对象,由它们的名称可以很容易猜出它们所代表的意思,例如:${sessionScope.username}是取出Session范围的username 变量。

2.6 EL隐含对象

  EL有九个隐含对象。
  如下表:

隐含对象类型说明
PageContextjavax.servlet.ServletContext表示此JSP的PageContext
PageScopejava.util.Map取得Page范围的属性名称所对应的值
RequestScopejava.util.Map取得Request范围的属性名称所对应的值
sessionScopejava.util.Map取得Session范围的属性名称所对应的值
applicationScopejava.util.Map取得Application范围的属性名称所对应的值
paramjava.util.Map如同ServletRequest.getParameter(String name)。回传String类型的值
paramValuesjava.util.Map如同ServletRequest.getParameterValues(String name)。回传String[]类型的值
headerjava.util.Map如同ServletRequest.getHeader(String name)。回传String类型的值
headerValuesjava.util.Map如同ServletRequest.getHeaders(String name)。回传String[]类型的值
cookiejava.util.Map如同HttpServletRequest.getCookies()
initParamjava.util.Map如同ServletContext.getInitParameter(String name)。回传String类型的值

三、前台显示BackBean的属性

EL表达式
参数请求的生命周期
facesContext

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值