现在的位置: 首页 > 综合 > 正文

El表达式(expression language)的简单应用:

2019年10月02日 ⁄ 综合 ⁄ 共 1599字 ⁄ 字号 评论关闭

//jsp页面中

result${2}   //result2

result${2*6}   //result12

result${2==3}   //resultfalse

//利用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对象,Useridint),namestring),ageint)两个属性。

<%

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]} 

//结果略

 

抱歉!评论已关闭.