品茶看<Servlet&JSP>-EL表达式
2014-04-07 08:31
393 查看
前言
今早,概率课偷了下小懒写的:泡一杯红茶,ACM集训前,写篇博客记录记录EL表达式。
#EL介绍
①EL 语法
②访问JavaBean等
③EL隐式对象
④EL运算符
EL介绍
EL 全名为Expression Language。受ECMAScript 和XPath 表达式的语言启发。EL 的语法比传统JSP Scriptlet 更为方便、简洁。
EL 语法
①基本知识
${为起始、以}为结尾的,构造:${expression}。接下来比较下:
JSP Scriptlet获取:
② [] 和 . 运算符
EL表达式中,对象有属性。就可以利用 [] 和 . 运算符 来访问该属性,两者功能相似。
例如:下面都是一样的。
两者功能差异
# 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ]。
例如:
selection是一个变量,可以代表user各个属性。
${sessionScope.user[selection]}
如果selection为"name",就相当于sessionScope.user.name或者{sessionScope.user["name"]}
因此,如果要动态取值时,. (点)运算符无法做到动态取值, [] 运算符 可以做到。
访问JavaBean
[align=center]类型[/align] | [align=center]实例[/align] | [align=center]方法[/align] |
[align=center]JavaBeans[/align] | ${user.username} ${user["username"]} ${user['username']} | user.getUsername() |
[align=center]数组[/align] | ${sport[1]} ${sport["1"]} ${sport['1']} | sport[1] |
[align=center]List[/align] | ${phone[2]} ${phone["2"]} ${phone['2']} | phone.get(2) |
[align=center]Map[/align] | ${phone.home} ${phone["home"]} ${phone['home']} | phone.get("home") |
EL隐式对象
隐含对象 | 类型 | 说明 |
PageContext | javax.servlet.jspPageContext | 表示当前JSP的javax.servlet.jsp.PageContext |
PageScope | java.util.Map | 取得Page范围的属性名称所对应的值 |
RequestScope | java.util.Map | 取得Request范围的属性名称所对应的值 |
sessionScope | java.util.Map | 取得Session范围的属性名称所对应的值 |
applicationScope | java.util.Map | 取得Application范围的属性名称所对应的值 |
param | java.util.Map | 如同ServletRequest.getParameter(String name)。回传String类型的值 |
paramValues | java.util.Map | 如同ServletRequest.getParameterValues(String name)。回传String[]类型的值 |
header | java.util.Map | 如同ServletRequest.getHeader(String name)。回传String类型的值 |
headerValues | java.util.Map | 如同ServletRequest.getHeaders(String name)。回传String[]类型的值 |
cookie | java.util.Map | 如同HttpServletRequest.getCookies() |
initParam | java.util.Map | 如同ServletContext.getInitParameter(String name)。回传String类型的值 |
cookie
隐式对象cookie包含了当前HttpServletRequest的所有cookie 的Map。例如
获取一个名为jsessionid的cookie值:
header 和headerValues
header 储存用户浏览器和服务端用来沟通的数据,当用户要求服务端的网页时,会送出一个记载要求信息的标头文件,例如:用户浏览器的版本、用户计算机所设定的区域等其他相关数据。例如
获取accept-language语言
initParam
就想我们在web-xml 配置 初始化值得时候,我们用initParam隐式对象可以获取。
用EL表达式获取:
param和paramValues
同上面的理
request.getParameter(String name)
request.getParameterValues(String name)
EL运算符
逻辑运算符 | 实例 | 结果 |
&&或and | 交集${A && B}或${A and B} | true/false |
||或or | 并集${A || B}或${A or B} | true/false |
!或not | 非${! A }或${not A} | true/false |
总结
EL学习,这次比较全。以前用着就去看,索性写篇博客记录下。学这个,好比ABC... 慢慢来,多写多用就会了。
相关文章推荐
- ④品茶看<Servlet&JSP>-EL表达式
- <jsp:include> 嵌套Servlet请求,导致Stream closed异常
- javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
- javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Invalid property in <set>: "age2"
- javax.servlet.JspTagException:Illegal use of &lt;when&gt;-style tag without &lt;choose &gt;as its di
- javax.servlet.JspTagException:Illegal use of <when>-style tag without <choose >as its di
- javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt
- servlet查询所有消息"List<Message>",并跳转到页面"messageList.jsp"进行显示
- JSP中<base href="<%=basePath%>">的作用
- <c:forEach>标签与el表达式联合的使用
- jsp使用javabean<jsp:useBean>
- Hello JSP!——<jsp:forward>动作元素篇
- Hello JSP!——<jsp:plugin>、<jsp:params>、<jsp:fallback>动作元素篇
- <jsp:include>
- jsp通过<img>标签的src属性来调用servlet类生成验证码遇到的问题
- Jsp中注释<!-- --> 和 <%-- --%>的区别
- 1.Struts的<action forward="/login.jsp"></action>:界面
- <base>标签在jsp页面的应用
- java - el表达式中<c:if>判断无效
- <jsp:useBean>的使用