EL表达式
只要是支持Servlet2.4或JSP2.0的容器,就可以在JSP页面中直接使用EL
所有EL都是以${为起始,以}为结尾的。
如
${sessionScope.person.name}等效于
<%
Personperson=(Person)session.getAttribute("person");
Stringname=person.getName();
out.println(name);
%>
EL提供.与[]两种运算符来存取数据
普通字符串
request.setAttribute("hello","helloworld");
${hello}
el的隐含对象pageScope,requestScope,sessionScope,applicationScope,如果未指定 scope,它的搜索顺序为pageScope-->requestScope-->sessionScope-->applicationScope
对象
Groupgroup=newGroup();
group.setName("尚学堂");
Useruser=newUser();
user.setUsername("张三");
user.setAge(18);
user.setGroup(group);
request.setAttribute("user",user);
${user.username}<br>${user.age}<br>${user.group.name}<br>
map
MapmapValue=newHashMap();
mapValue.put("key1","value1");
mapValue.put("key2","value2");
request.setAttribute("mapvalue",mapValue);
${mapvalue.key1}<br>${mapvalue.key2}<br>
字符串数组
String[]strArray=newString[]{"a","b","c"};
request.setAttribute("strarray",strArray);
${strarray[0]}<br>${strarray[1]}<br>${strarray[2]}<br>
对象数组
User[]users=newUser[10];
for(inti=0;i<10;i++){
Useru=newUser();
u.setUsername("U_"+i);
users[i]=u;
}
request.setAttribute("users",users);
${users[0].username}<br>${users[1].username}<br>${users[2].username}<br>
list
ListuserList=newArrayList();
for(inti=0;i<10;i++){
Useruu=newUser();
uu.setUsername("UU_"+i);
userList.add(uu);
}
request.setAttribute("userlist",userList);
${userlist[4].username}
测试empty
request.setAttribute("value1",null);
request.setAttribute("value2","");
request.setAttribute("value3",newArrayList());
request.setAttribute("value4","123456");
value1:${emptyvalue1}<br>
value2:${emptyvalue2}<br>
value3:${emptyvalue3}<br>
value4:${emptyvalue4}<br>
value4:${!emptyvalue4}<br>
取web.xml初始化参数
<context-param>
<param-name>encoding</param-name>
<param-value>大五码</param-value>
</context-param>
${initParam.encoding}
取URL参数
<ahref="el.jsp?a=aaa&b=bbb">链接ELp2</a>
${param.a}<br>${param.b}<br>
el表达式支持运算符