SpringMVC中JSP頁面不顯示EL表示式的原因

towboat發表於2024-05-13

感謝 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 表示式;

相關文章