EL表达式
简化jsp里的java代码
格式:${表达式}
例1:
//存值
<% pageContext.setAttribute(“name”,“page”);%>
//按普通方法取值
<%= pageContext.getAttribute(“name”)%>
//使用EL表达式取出作用域中的值
${ pageScope.name} -------//到这个作用域里找这个name
${name}-------//先在page里找,没有去request里找,去session,去application
例2:取数组
<%
String[] a = {“a”,“b”,“c”};
pageContext.setAttribute(“array”,a);
%>
//EL表达式取出作用域中数组的值
${array[0]}, ${array[1]}, ${array[2]}
例3:取集合(同数组)
<%
List.list = new ArrayList();
list.add(“11”);
list.add(“22”);
list.add(“33”);
pageContext.setAttribute(“li”,list);
%>
//EL表达式取集合中的数据
${li[0]}, ${li[0]}, ${li[0]}
例4:Map
<%
Map map = new HashMap();
map.put(“name”,“zhangsan”);
map.put(“age”,16);
map.put(“address”,“北京”);
pageContext.setAttribute(“li”,list);
%>
EL表达式取出作用域中Map的值
${map.name"}, ${map.age"}, ${map.address"}
//特殊情况
<%map.put(“address.aa”,“深圳”)%>
EL取值
${map["address.aa "]}
例4:
已经在一个名为User的java类中设置了name和age的成员变量
<%
User user = new User(“zhangsan”,18);
session.setAttribute(“u”,user);
%>
RL取值
${ u.name }, ${ u,age }
11个内置对象
- pageContext --------${ 对象名.成员 }
- 作用域相关对象
- pageScope
- requestScope
- sessionScope
- applicationScope
- 头信息相关对象
-
header
-
headerValues
4.参数信息相关对象
-
param
-
paramValues
- cookie
- 全局初始化
- initParam
JSTL
JSP Standard Tag Library
JSP标准标签库,一个不断完善的开源代码的JSP标签库
简化jsp代码,替换<%%>写法,一般与EL表达式配合
- 引入标签库
- 导入jar文件到工程的WebContent/Web-Inf/lib jstl.jar standard.jar
- 在jsp界面上,使用taglib指令,来引入标签库
<% taglib prefix=“c " uri=”" %> - 1.1版本支持EL表达式,1.0版本不支持
常用标签
- c:set
声明一个对象name,对象的值为zhangsan,存储到了page(默认),指定是session
<c:set var=“name” value=“zhangsan” scope=“session”></c:set>
${sessionScope.name }
- c:if
判断test里面的表达式是否满足,如果满足,就执行c:if标签中的输出,c:if是没有else的
<c:set var=“age” value=“17”></c:set>
<c:if test="${ age > 12 }">年龄大于12岁</c:if>
定义一个变量名flag去接收前面表达式的值,然后存到session域中
<c:if test="${ age < 22 }" var=“flag” scope=“session”>年龄小于22</c:if>
${sessionScope.flag }
//输出为true
- c:forEach
从1遍历到10,得到的结果赋值给i,并且会存储到page域中,stap表示增幅为1
<c:if test="${ age < 22 }" var=“flag” scope=“session”>年龄小于22</c:if>
${sessionScope.flag }
遍历一个对象,items中写EL表达式,遍历出来的每一个元素用user接收
<%
List list = new ArrayList();
list.add(new User(“zhangsna”,12));
list.add(new User(“zouyi”,15));
list.add(new User(“guoer”,13));
list.add(new User(“anwu”,18));
pageContext.setAttribute(“list”, list);
%>
<c:forEach var=“user” items="${list }">
u s e r . n a m e − − − − − {user.name }----- user.name−−−−−{user.age }
</c:forEach>