通过EL访问值栈的数据

通过上节教程《Struts2获取值栈数据》的学习,我们掌握了通过属性驱动和模型驱动获取值栈的数据以及它们的概念和使用方法。在 Struts2 框架中,使用 EL 表达式也可以直接访问值栈中的数据。本节我们主要来介绍如何通过 EL 访问值栈的数据。

在 model.jsp(《Struts2获取值栈数据》教程模型驱动部分中的实例)中,添加如下代码:

<hr/>
使用EL表达式访问值栈中的数据:<br/>
姓名:${model.name }<br/>
年龄:${model.age }

上述代码使用了 EL 表达式获取值栈中的数据,重新访问页面后,浏览器的显示如图 1 所示。

访问结果
图 1  访问结果

从图 1 中可以看出,直接用 EL 表达式的方式同样取出了值栈中的数据。EL 表达式能够访问值栈中数据的原因,是因为 Struts2 框架对请求进行了增强,如果在 request 作用域中没有查找到对应的值,就会到值栈中查找。查找时,它会先被当作属性在 root 中查找,查找不到再被当作 key 在 contextMap 中查找对应的 value,查找到后会将数据取出。