jsp中尽可能的减少java代码
例子:回显
EL表达式功能
11个内置对象
从某个范围内取值
从域对象中取值时,按照范围从小到大取
<%
application.setAttribute("name", "张三");
session.setAttribute("name", "李四");
request.setAttribute("name", "王五");
pageContext.setAttribute("name", "赵六");
%>
${name }
<hr>
所以取出的name为“赵六”
最好取某一个最好
<%
application.setAttribute("name", "张三");
session.setAttribute("name", "李四");
request.setAttribute("name", "王五");
pageContext.setAttribute("name", "赵六");
%>
${sessionScope.name }
<hr>
获取对象
//创建实例
User users=new User("嬴政",123456);
HttpSession session=request.getSession();
session.setAttribute("users", users);
<%
User user=(User)session.getAttribute("users");
out.print(user.getName());
%>
<hr>
${sessionScope.users.name }
注意:小技巧:
设值的名字为session.setAttribute("users.user", users);
获取值的时候${sessionScope["users.user"].name }
如果域中值的名字是users.user就会出现问题,他会去下面找user属性,加上[" "]就不会出现问题,表示users.user是一个域中值的名字
对象集合
//对象集合
List<User> lsUser=new ArrayList<>();
lsUser.add(new User("阿珂",18));
lsUser.add(new User("兰陵王",1800));
lsUser.add(new User("李白",180));
request.setAttribute("lsUser",lsUser);
${requestScope.lsUser[0].name }
获取Map类型
//map
Map<String, User> map=new HashMap<>();
map.put("aa", new User("宫本",345));
request.setAttribute("map", map);
map:${requestScope.map.aa.name }
支持运算符
<%
int aaaa = 5;
int bbbb = 6;
pageContext.setAttribute("aaaa",aaaa);
pageContext.setAttribute("bbbb",bbbb);
%>
${1+1 }
${aaaa==bbbb }
<!-- 运算符 -->
<%
List list2 = new ArrayList();
pageContext.setAttribute("aa",list2);
%>
<!-- aa==null || aa.equls("") || aa.isEmpty(); -->
${empty aa}
${aaaa==bbbb?1:0}