//jsp页面中
result:${2} //result:2
result:${2*6} //result:12
result:${2==3} //result:false
//利用el表达式来代替java代码,注意:java中非常量部分如果想要用el表达式表示,那么一般要填充到内置对象中才能使用。
<%session.setAttribute("name","tom_session");%>
Result: ${name}
//result: tom_session
同属性名内置对象的优先级:
<%
application.setAttribute("name","tom_application");
session.setAttribute("name","tom_session");
request.setAttribute("name","tom_attribute");
pageContext.setAttribute("name","tom_page"); %>
result: ${name}
//result: tom_page
经过试验可知:优先级不是按照书写顺序,而是按照几个内置对象在应用中的作用域决定的,即:作用域越小,优先级越高,也就是上文中从下到上的顺序。
然而在实际应用中,可能无法避免重名现象,我们如何引用优先级较低的变量呢?
访问方式如下:
${applicationScope.name}</br>
${sessionScope.name} </br>
${requestScope.name} </br>
${pageScope.name} </br>
//结果如下:
tom_application
tom_session
tom_attribute
tom_page
访问对象:
有UserBean对象,User有id(int),name(string),age(int)两个属性。
<%
UserBean user=new UserBean();
user.setName("R.FH");
user.setId(10);
user.setAge(22);
request.setAttribute("user",user);%>
//引用方法:
Id :${user.id}
Name:${user.name}
Age :${user.age}
//结果略
访问集合、Map或数组
1.集合
<%
UserBean user=new UserBean();
user.setName("R.FH");
user.setId(10);
request.setAttribute("user1",user1);
UserBean user2=new UserBean();
user2.setName ("L.SM");
user2.setId (11);
request.setAttribute("user2",user2);
List list=new ArrayList();
list.add(user1);
list.add(user2);
request.setAttribute("list",list);%>
//引用方法
userName=${list[1].name}
userId=${list[1].id }
//结果略
2.Map
<%
Map map=new HashMap();
map.put("name","R.FH");
map.put("id",10);
request.setAttribute("map",map);%>
//引用方法
MapName=${map.name}
MapId=${map.id}
//结果略
3.数组
<%
int [] arr=new int[]{1,2,3,4,5};
request.setAttribute("arr",arr);%>
//引用方法
arr[1]=${arr[1]}
//结果略