EL
EL
jsp是把HTML好css分离,要把html和js分离,要把java脚本替换成标签,标签的好处是非Java人员都可以使用
EL只能取值不能赋值,
EL中有四大域(pageScope, requestScope, sessionScope, applicationScope),
Servlet是三个域(request, session, application),
jsp是九大内置对象(out, config(ServletConfig), page(当前JSP的真身类型), pageContext, exception, request, response, application, session),
EL是11大内置对象(param, paramValues, header, headValues, initParam, cookie, pageContext, pageScope, requestScope, sessionScope, applicationScope)主要还是四大域
在EL中如果没有指定域的范围那么搜索的范围是从pageScope,requestScope, sessionScope, applicationScope
EL的表达式的语法$和{ }
EL提供了.和[ ]两种运算符来导航数据${sessionScope.user.sex} 等于${sessionScope.user["sex"]}
这两个运算符也可以混合使用${sessionScope.shoppingCart[0].price}
域相关的内置对象(重点):
域内置对象一共有四个:
pageScope:${pageScope.name}等同于pageContext.getAttribute("name");
requestScope:${requestScope.name}等同于request.getAttribute("name");
sessionScope:${sessionScope.name}等同于session.getAttribute("name");
applicationScope:${applicationScope.name}等同于application.getAttribute("name"):
在jsp页面中如果要用到对象,是要导包的<%page import="com.ghc.servlet"%>
但是在JSP页面中用EL表达式就不用到导包 ${key},用的是key,就可以取的属性的值
EL用到的运算符:+ - * / % == != < > <= >= && ! || empty
${empty ""}:输入true,判断集合,数据,字符串长度是否为0
${null} 不会输出,如果是null就不会数据,而是输出空串
EL对JavaBean的操作,
<%
User user = new User();
user.setUsername(“张三”);
user.setPassword("23234");
pageContext.setAttribute("user", user);
%>
${pageScope.user.name}
${pageScope.user.password}
操作List
<%
User user = new User();
user.setUsername("张三");
user.setPassword("132");
List list = new ArrayList();
list.add(user);
pageContext.setAttribute("list", list);
%>
${pageScope.list[0].name}
${pageScope.list[0].password}
操作Map
<%
User user = new User();
user.setName("张三");
user.setPassword("123");
Map map = new HashMap();
map.put("u1", user);
pageContext.setAttribute("map", map);
%>
${pageScope.map.u1.name}
${pageScope.map.u1.password}