EL:
jsp中的EL(express language)表达式技术:它仅仅是表达式。JSP2.0中默认的启用EL语言。
定义一个变量:
<%
String msg=(String)request.getAttribute("msg");
%>
输出一个变量值
依次从pageContext中去找msg,没有的话从request作用于去找,再没有去session作用域去找,还没有去applicationContext中去找,再没有就没有了 。
<%=msg%>
${msg }
判断大小
<%--等于,也可使用 == --%>
${1 eq 1}
<%--不等于,!= --%>
${1 ne 1}
<%--小于, < --%>
${2 lt 1}
<%--大于, > --%>
${2 gt 3}
<%--小于等于, <= --%>
${2 le 3}
<%--大于等于, >= --%>
${2 ge 1}
关系运算符
${true && false}
${true || false}
${!false}
三目运算符
${ 1 == 1 ? true : false}
empty
<c:if test="${! empty key}">${key}</c:if>
<c:if test="${empty key}">12345</c:if>
当key不为空时输出key的值。当key为空时,输出“12345” :
判断条件如下:
1、若key为null时,返回true
2、若key为空String时,返回true
3、若key为空Array时,返回true
4、若key为空Map时,返回true
5、若key为空Collection时,返回true
6、否则,返回false
EL的复杂用法
数组:
<%
String[] arr = {"123", "456", "789"};
pageContext.setAttribute("arr", arr, PageContext.REQUEST_SCOPE);
%>
${requestScope.arr[0]}
Map:
<%
Map<String, String> map = new HashMap<>();
map.put("name", "Tom");
map.put("age", "20");
pageContext.setAttribute("map", map);
%>
${map.name}
List
<%
List<String> list = new ArrayList<>();
list.add("123");
list.add("456");
pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE);
%>
${list}