环境
- IDEA 19.1.2
- macOS 10.15.3
使用 JSP 时 EL 表达式的数据不显示?
在使用 JSP 文件写 EL 表达式时,遇到了问题
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
${user.name} : ${user.age} : ${user.addr}
</body>
</html>
该 EL 表达式无法正常显示获取到的值,而是直接在页面上输出
${user.name} : ${user.age} : ${user.addr}
解决方案
1. 原因
问题是由于 web.xml 的版本过低,查看该项目的 web.xml
文件的版本为 2.3。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
该版本其中的 isELIgnored
默认设置为true
,则会将 EL 表达式直接当做字符串解析
<%@page isELIgnored="false"%>
- 如果设置为
true
,则会将 JSP 中的表达式当做字符串处理;- 如果设置为
false
即解决此问题
2.解决
2.1
由于 2.4 版本之后其中的 isELIgnored
默认设置为false
可将 web.xml
的版本更换为 2.4 或以上版本,即可解决此问题
2.2
或在 jsp 文件中添加如下信息,也可解决此问题
<%@page isELIgnored="false" %>