JSP中EL表达式的使用
Posted fgy121
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP中EL表达式的使用相关的知识,希望对你有一定的参考价值。
JSP中EL表达式的使用
EL(Expression Language)表达式并不是通用的程序设计语言,仅是一种数据访问语言,可以在JSP中方便地访问Java数据。
示例:${expression}
EL隐式对象列表
类别 | 标识符 | 描述 |
---|---|---|
JSP | pageContext | 当前页面 |
作用域 | pageScope | 页面作用域 |
requestScope | 请求作用域 | |
sessionScope | 会话作用域 | |
applicationScope | 应用程序作用域 | |
请求参数 | param | 存储请求参数 |
paramValues | 将请求参数的所有值作为 String 数组存储 | |
请求头 | header | 按名称存储请求头 |
headerValues | 将请求头的所有值作为 String 数组存储 | |
Cookie | cookie | 按名称存储请求附带的 cookie |
初始化参数 | initParam | 按名称存储 Web 应用程序上下文初始化参数 |
EL数据访问
作用域对象
applicationScope:用来取得application范围属性值。
sessionScope:用来取得session范围属性值。
requestScope:用来取得request范围属性值。
pageScope:用来取得page范围属性值。
这些隐式对象对应于JSP中的pageContext,request,session,application,只用来读取属性值。
//创建对象,分别放进不同作用域
User myUser = new User("0001", "张三", 20);
pageContext.setAttribute("currentUser", myUser);
request.setAttribute("currentUser", myUser);
session.setAttribute("currentUser", myUser);
application.setAttribute("currentUser", myUser);
//读取不同范围的值
page范围:${pageScope.currentUser.name}<br />
request范围:${requestScope.currentUser.name}<br />
session范围:${sessionScope.currentUser.name}<br />
application范围:${applicationScope.currentUser.name}<br />
不指定范围:${currentUser.name}
如果不指定范围,默认会从page范围内找,如果找不到,再依次到request、session、application范围中找。如果没有找到就返回null。
读取集合或map
//存入集合
ArrayList<User> lists = new ArrayList<User>();
lists.add(new User("0001", "张三", 20));
lists.add(new User("0002","李四",30));
session.setAttribute("userList", lists);
//存入map
Map<String,User> map = new HashMap<String,User>();
map.put("user1", new User("0001","张三",20));
session.setAttribute("currentUser", map);
// 读取集合
${userList[0].name}<br />
${userList[1].name}<br />
// 读取map
${currentUser.user1.name}<br />
请求参数对象
//在EL之前使用如下代码取得请求参数
request.getParameter(name);
request.getParameterValues(name);
//在EL中使用如下隐式对象取得请求参数
param:接收的参数只有一个值。
paramValues:接受的参数有多个值。
示例:
<form method="post" action="buyMessage.jsp">
<p>
请选择您要购买的商品:
</p>
<p>
<input type="checkbox" name="goods" value="手机"/>手机
</p>
<p>
<input type="checkbox" name="goods" value="电脑"/>电脑
</p>
<p>
<input type="checkbox" name="goods" value="空调"/>空调
</p>
<p>
请输入收货地址:<input type="text" name="address" />
</p>
<input type="submit" value="确定" />
</form>
<!--获取前一页面请求中的值 -->
<body>
<%
request.setCharacterEncoding("utf-8");
%>
您选择的商品是:
<p></p>
${paramValues.goods[0]}<p></p>
${paramValues.goods[1]}<p></p>
${paramValues.goods[2]}<p></p>
您的收货地址是:
<p></p>
${param.address}
<p></p>
<input type="button" value="下一步" />
<input type="button" value="返回上一步" />