什么是EL表达式?有什么作用?
全称Expression Language 是表达式语言,EL表达式语言是一种简单的语言,提供了JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。
开发原则:JSP页面中不能出现一行Java脚本<%%>和Java表达式<%=%>
若EL表达式取得的值为空,则什么都不会输出,脚本会输出null
el表达式只能从域对象中获取值
jsp中的四大域对象(从小到大进行搜索)
page域对象(当前页面)
request域对象(一次请求,服务端跳转)
sesstion域对象(一次会话,服务端和客户端跳转)
application域对象(整个应用)
语法、
1.${域对象.键名}:从指定的域中获取指定键的值
- 域名称:
- pageScope -->pageContext
- requestScope -->request
- sessionScope -->session
- applicationScope-->application(ServletContext)
域中存取数据
<% req.setAttribute("username","zhaoyun");
req.getSession().setAttribute("username","zilong");
req.getSession().setAttribute("gender","男");%>
${requestScope.username}
${sessionScope.username}
${gender}
存取对象与集合数据:
<%
//map集合
HashMap<String, String> map = new HashMap<>();
map.put("name","yuzi");
map.put("gender","nv");
map.put("util","idea");
req.setAttribute("map",map);
//访问对象属性
User user = new User();
user.setUsername("zhangsan");
user.setPassword("123");
req.setAttribute("user",user);
User user1 = new User();
user1.setUsername("lisi");
user1.setPassword("1234");
ArrayList<User> userArrayList= new ArrayList<>();
Collections.addAll(userArrayList,user,user1);
req.setAttribute("users",userArrayList);
req.getRequestDispatcher("el.jsp").forward(req,resp);
%>
${map.name}
${map.gender}
${map.util}
${user.username}
${user.password}
${users[0].username}
${users[1].username}
paramValues 获取请求参数:
<a href="${pageContext.request.contextPath}/el.jsp?count=3">el.jsp</a>
<form action="${pageContext.request.contextPath}/el.jsp" method="post">
<input type="checkbox" name="enjoy" value="打架" checked="checked">打架
<input type="checkbox" name="enjoy" value="打人">打人
<input type="checkbox" name="enjoy" value="打球">打球
<input type="submit" value="提交">
</form>
el.jsp
${paramValues.enjoy[0]}
${paramValues.enjoy[1]}
${paramValues.enjoy[2]}