感謝 https://developer.aliyun.com/article/444366
在 Spring MVC 的入門專案中, 這是最常見的問題。實際上這是因為使用了 JSP 1.2 規範引起的。
1. 使用JSP 1.2 定義格式
如果您使用了 老舊的JSP 1.2描述方式, 即使用了 DTD 定義:
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
//...
</web-app>
這種情況下, EL表示式預設是禁用或者忽略的, 必須手動啟用,才會輸出 model 中的值。示例如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<%@ page isELIgnored="false" %>
</head>
<body>
${msg}
</body>
</html>
可以看到,其中使用了 <%@ page isELIgnored="false" %>
來開啟 EL 表示式;