EL(Expression Language)表达式
作用:向浏览器输出域对象中的变量值或者是表达式计算的结果.主要是为了替换jsp表达式.
jsp的核心语法:jsp表达式<%= >和jsp脚本<% %>.
jsp开发原则:尽量在jsp页面中少写甚至不写Java代码.
EL语法:${变量或表达式 }
1)输出基本数据类型变量
<%
String name="bighuan";//为了方便测试,还是在jsp脚本中写数据
//pageContext.setAttribute("username", name);
pageContext.setAttribute("username", name,PageContext.REQUEST_SCOPE);
%>
jsp表达式:<%=name %><br/>
<%--从四个域中自动搜索:等价于<%=pageContext.findAttribute("username") %>--%>
EL表达式:${username }<br/>
<%--从指定域中获取,这样才拿的到 --%>
从指定域中取出数据:${requestScope.username}
2)输出对象的属性值
<%--EL表达式输出对象的属性 --%>
<%
Person person=new Person("bighuan",100);//Person是一个javabean,有name和id两个属性
//将对象存入域对象中
pageContext.setAttribute("person", person);
List<Person> list=new ArrayList();
list.add(person);
list.add(new Person("erqiu",20));
list.add(new Person("tiedan",21));
pageContext.setAttribute("list", list);
Map<String ,Person> map=new HashMap<String , Person>();
map.put("001", person);
pageContext.setAttribute("map", map);
%>
//输出对象的值
${person.name }//相当于person.getName(),因此Person类必须是标准的javabean
${person.id }
<br/>
//获取集合中的数据,相当于list.get(0).getName()...
list:${list[0].name }--${list[0].id } <br/>
//获取map中的数据,相当于map.get(key).getName()...
map:${map['001'].name }
<hr/>
<%
//判空
String str="";
pageContext.setAttribute("str", str);
%>
<%--判断是否为空 --%>
${str==null || str==""}
${empty str }//等价于上面这行代码
总结
在jsp页面中尽量不要使用jsp表达式和jsp脚本,用EL表达式和jsp标签替代.jsp标签?下篇博客会有...