EL表达式

EL(Expression Language)即表达式语言,是一种方便访问Java组件的脚本语言,用来代替JSP中复杂的Java代码

一.  简介

1) 语法结构

${expression}


2) []和. 运算符

EL提供.和[]两种运算符来存取数据. 当存取的属性包含一些特殊字符, 如. 或?等并非字母或数字符号,一定要用[]

String name = ${user.his-name} 应该改为: String name= ${user[his-name]} // 这时候就需要用[]

[]可以做到动态取值,.无法做到动态取值.


3) 变量范围

${userName}他会从Page, Request, Session, Application范围中查找变量,如果找到,就回传,不再继续找下去,如果都没有,则返回NULL.

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


4) 页面启用EL语言

<span style="font-size:14px;"><%@page isELIgnored="false"%></span>

 true表示禁止, false表示启用


5) EL可以显示逻辑表达式, 关系表达式, 算术表达式

${true and false} 结果 false

${5>6} 结果 false

${5+6} 结果11


二 . EL 隐含对象

1) 与范围有关的隐含对象(往4个范围对像里面存属性)

例, ${sessionScope.userName} ,等于session.getAttribute("userName");


2) 与输入有关的隐含对象

如果url中get方式传递的参数格式为?name="小明"&name="小赵"&age="19" 

和post提交的表单参数都可以这样取值

String age = request.getParameter("age"), == ${param}   表示返回请求参数中单个字符串值.

String[] name = request.getParameterValues("name"), ==${paramValues} 表示返回的是一个数组


3)  其他隐含对象

A . cookie

例:cookie中有个设定名称为userCountry的值,可以使用${cookie.userCountry} 来取得它。

B. header和headerValues

header 储存用户浏览器和服务端用来沟通的数据
例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。
 

C. initParam

设定web站点的环境参数(Context), ${initParam.userid}来取得名称为userid

一般方法String userid = (String)application.getInitParameter("userid");

D. pageContext

pageContext取得其他有关用户要求或页面的详细信息。

${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串
${pageContext.request.contextPath} 服务的web application 的名称
${pageContext.request.method} 取得HTTP 的方法(GET、POST)
${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr } 取得用户的IP 地址
${pageContext.session.new} 判断session 是否为新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主机端的服务信息

注意:


在Spring 中,所有逻辑处理单元返回的结果数据(Controller层方法return的数据),都将作为Attribute 被放置到HttpServletRequest 对象中返回, 也就是说SpringMVC 中,结果数据对象默认都是requestScope, 在框架中不要用$(session.取值)。

具体实现可参见Spring 源码中org.springframework.web.servlet.view.InternalResourceView.exposeModelAsRequestAttributes方法的实现代码,



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值