参考:
http://zhyx5017192.blog.163.com/blog/static/30925128201322251248952/
重新温习el表达式
1.el表达式隐含对象:param pageContext requestScope sessionScope pageScope cookie initParam
1)这些...Scope 分别取得request.setAttribute(...),session.setAttribute()值
2) pageContext本身就是JavaBean 只要是getXx() 就可用${pageContext.xx}取得,如在JSP中表示为:
<%=((HttpServletRequest)pageContext.getRequest()).getMethod() %>
用EL表达式表示为:
${pageContext.request.method}
3)cookie可以取得用户的Cookie设置值,如果在cookie中设置的Username属性,则可以使用 ${cookie.username}取得值
4)initParam取得web.xml中设置的ServletContext初始参数,也就是在<context-param>中设置的初始参数
${initParam.initCount} 相当于<%=servletContext.getInitParameter("initCount") %>
2.使用el访问属性
1)访问简单属性
在servlet端:request.setAttriute("username",username); 则在jsp可能过el表达式取得username值:${username}
在servlet端:request.setAttribut("user",user);则在Jsp可通过el取得user的username值,前提是User.java类里提供了private String username; public String getUsername(){...};
el表达式:${user.username} 还可以写成${user[username]}
2)访问数组 Map 简单属性用. [] 都可以取得值
在Servlet端:
String [] names={"zhangsan","lisi","wangwu"};
request.setAttribut("nameArray",names);
el取得各个值
jsp端:
${nameArray[0]} ${nameArray[1]} ${nameArray[2]}
3)访问Map集合
在Servlet端:
Map map=new HashMap();
map.put("user","zhangsan");
map.put("role","Admin");
request.setAttribut("login",map);
在JSP端:
${login[user]}取得值为zhangsan ${login[role]}取得值为Admin 也可使用。
${login.user} 建议使用【】
4)访问List集合
在Servlet端:
List list=new ArrayList();
list.add("苹果");
list.add("梨");
request.setAttibut("fruits",list);
在JSP端:
${fruits[0]}取得苹果 ${fruits[1]}取得梨