今天在寫一個springmvc的小demo時,碰到一個問題,在jsp頁面中書寫為${user.username}的表達式語言,在瀏覽器頁面中仍然顯示為${user.username},說明jsp根本不認識${}標簽,摸索了一下,發現我的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" >
這表示的是servlet使用的2.3版本,查了一下,默認情況下,Servlet2.3/jsp1.2默認是不支持el表達式的,此時有兩種解決方案,測試都能解決問題.
第一種方式,是直接在jsp文件頭部標簽前加入
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
表示強制性的不忽略el表達式格式,重新測試,成功顯示數據.
第二種方式就是使用servlet的更高版本,比如我直接將web.xml改成2.5版本:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> </web-app>
此時,不需要設置 isELIgnored="false" 因為此版本已經默認支持el表達式了.