java的El技术、JSTL技术
1、EL技术(优化减少代码)
(1)从pageContext、request、session、application域中取数据:
1)<%=域.getAttribute(String name)%> <%=pageContext.getAttribute(String name,int scope)>代替:
${pageScope.name} ${requestScope.name} ${sessionScope.name} ${applicationScope.name}
2)<%=pageContext.findAttribute(String name)%> 代替:${name}
3)获得字符串;获得对象的值;获得对象集合;
[注:不能出现方法;"."属性]
4)${1+1} --> 2 可以写算式;
${empty user} 判断user对象是否存在,如果不在为空就返回true,如果在不为空就返回false;
${!empty user} 判断user对象是否存在,跟上面相反;
${1+1==2?true:false} 可以写三元运算符;
2、JSTL技术(标签:完成业务逻辑)
(1)Core URI[http://java.sun.com/jsp/jstl/core] 前缀:c
(2)<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> taglib指令;
(3)普通for循环 for(var i = 1;i<= 10;i++){ System.out.println(i);}
==> <c:forEach begin="1" end="10" var="i"> ${i }</c:forEach>
==> <c:forEach begin="1" end="10" var="i"> i </c:forEach> 这里会输出十个 " i "
注:不配合EL使用,将 "i" 循环十次;
增强for循环 for(User user:list){ System.out.println(user.getName());}
==> <c:forEach items="${list}" var="user">${user.name }</c:forEach>
注:map集合 for(entry<String,String> user:map){ System.out.println(user.getKey()+user.getValue);}
==> <c:forEach items="${map}" var="user">${user.key }...${user.value }</c:forEach>
if判断语句 if(1==1){System.out.println("nihao")}