一、问题
在做一个demo,因为很久没有重新用 jsp 页面直接 EL 取数据了,遇到了问题,记录一下。
简单来说就是用 EL 在 jsp 页面里面从域中用 ${ xxx } 取数据:
- 但是浏览器对应页面的位置是空白。
- 也没有显示 ${ xxx } 这个表达式的字符串本身。
二、前置条件:
- 已经引入了 jstl 和 taglibs 的依赖;
- 引入依赖之后在 jsp 页面的头部需要添加命名空间,也就是 <%@ taglib prefix="c" uri="Oracle Java Technologies | Oracle" %> 这样的声明,否则在 IDEA 里面写 EL 表达式时没有提示的,也会报错;
- EL 表达式语法正确,idea的提示里面可以直接写一个域里的属性名称,比如我的例子 requestScope.xxx,用点操作符反倒没有后面的提示,而直接写 xxx 会有提示。
因为这些都没有问题,所以我先排查了一下会不会是数据本身:
- 重新发请求看了一下网络状态:没有问题;
- 检查 jsp 的网页代码,html 的 body 都是空白,于是重新写了点数据,再次显示发现,除了 El 表达式的部分,其他都是可以正常显示的。