EL表达式——Map集合中的数据
Map集合中数据的显⽰
EL表达式
EL(Expression Language 表达式语⾔)定义了⼀系列隐含对象和操作符,⽆须Java代码即可⽅便地访问pageContext、request、session、application作⽤域中的对象。
jstl标签库:
JSTL(JSP Standard Tag Library,JSP标准标签库)是⼀个开源代码的JSP标签库。
使⽤前操作:
a,向web⼯程lib⽂件中导⼊相应的jstl jar⽂件
b,引⼊jstl标签库
<%@taglib uri="java.sun/jsp/jstl/core" prefix="c"%>
有关循环标签:
forTokens标签和forEach标签,forEach标签⽤于遍历集合或数组中的数据,如下语法:
<c:forEach var=”name” items=”集合或数组” [varStatus=”status”] [begin=”begin”] [end=”end”] [step=”step”]>
循环体
el表达式获取session中的值
</c:forEach>
特别注意:
EL表达式和jstl标签只能⽤在JSP⽂件中。
Map集合中数据的显⽰
Map集合中数据的显⽰:
NewFileServlet.java 中代码如下:
u.servlet;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class NewFileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String,Double> map=new HashMap<String,Double>();
map.put("Lily", 100.0);
map.put("Yxx", 110.0);
request.setAttribute("map", map);
}
}
NewFile.jsp中代码:遍历出单个的两种⽅法
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${map.Lily }
<br />~~~~~~<br />
${map['Lily'] }
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="java.sun/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="m" items="${map }">
${m.key } : ${m.value }<br />
</c:forEach>
</body>
</html>
输出结果如下:
当key为数值型时:
1,循环遍历输出的结果如下:
2,输出单个:
${map.2 }
3,输出单个:
${map['2'] }<br />
${map["1"] }
当key为Integer类型时:
${map['2'] }<br />
~~~~~~
${map["1"] }
得不到要的数据,只能使⽤遍历。
注意:
1、Map集合的key最好符合Java标识符规范,如果不符合,则在EL表达式中不能使⽤.的⽅式获取到Map相应的value,只能通过[]的⽅式获取到相应的value;
2、Map集合key的泛型不能是Java基本数据类型的包装类,否则EL表达式⽆论使⽤那种⽅式都⽆法获取到相应的value。
有关点和[ ]操作符
点操作符:
EL表达式通常由两部分组成:对象和属性。在EL表达式中,可以使⽤点操作符来访问对象的属性,例如${}就是访问user对象的id属性。[ ]操作符:
[ ]操作符也可以访问对象的属性,例如 $ {}也可以写成 ${user[“id”] }。当要存取的属性名称中包含⼀些特殊字符,如 “.” 或 “-” 等⾮字母或数字的符号时,就需要使⽤[]操作符。例如 $ {}应当改为 $ {user[“”] }。当动态取值时,需要⽤[]操作符来做,⽽点操作符⽆法做到动态取值,例如在 $ {sessionScope.user[index] }中,index时⼀个变量。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。