2020-12-29

el表达式和JSTL标签
el表达式的主要作用:

el表达式的主要作用是替代JSP页面里面的脚本表达式,在jsp页面里面夹杂着脚本会使页面显得杂乱且不美观,实用el表达式可以改善这些弊端。如果说具体的作用,简而言之就是实用el表达式和jstl标签就可以实现Java的效果,包括对象、属性、方法、集合、数组运算以及逻辑。注意jstl标签库是需要下载导入jar包的。

el表达式的语法及使用示例
el表达式获取数据语法:"${标识符}"

EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
在上述的四个域中,如果el表达式里面的标识符一样,也就是查询依据一样的情况下,查询顺序是从域范围小到大依次查找,也就是page、request、session、application这个顺序。

 <% 
  request.setAttribute("name","李海柱");
 %>
 使用EL表达式获取数据:${name} 
 ${name}等同于<%pageContext.findAttribute("name")%>

使用el表达式可以直接对象.属性,需要注意的是这里即使在Hero类里面的age属性是private私有化的也可以在其他jsp页面里面直接获取的原因是因为在Hero里面提供了get/set方法,el表达式的底层通过get、set方法获取的。

<%  
	Hero hero = new Hero();
	p.setAge(12);
	request.setAttribute("hero",hero);
%>
使用el表达式可以获取bean的属性:${hero.age}

在jsp页面中,使用el表达式获取list集合中指定位置的数据

 <% 
	Hero h1 = new Hero();
	p1.setName("李白");
	Hero h2 = new Hero();
	p2.setName("韩信");
	List<Hero> list = new ArrayList<Hero>();
	list.add(h1);
	list.add(h2);    
	request.setAttribute("list",list);
%>
<!-- 取list指定位置的数据 -->
${list[1].name} 

也可以迭代集合List集合以及Map集合 需要用到jstl标签(jstl标签里面提供了一些方法、逻辑关系等,包括迭代、if判断等)
注意点:必须把数据传输到域内
jstl标签 <c>...</c>

<!-- 迭代List集合 -->
<c:forEach var="hero" items="${list}">
${hero.name}
</c:forEach>
// 创建Map集合
Map map = new HashMap();
map.put("c","china");
map.put("a","america");
map.put("j","japan");
// 注意必须把数据传输到域内
request.setAttribute("map",map);
 <!-- 迭代Map集合 -->
<c:forEach var="country" items="${map}">
${country.key}=${country.value}<br/>
</c:forEach>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值