一、问题
今天在学习SpringMVC的时候遇到一个小小的问题,记录一下
简单的来说 就是在 jsp 页面里面从域中用 ${ xxx } 取数据
但是页面却无法解析对应的变量,如图所示
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>success</title>
</head>
<body>
<p>username: ${username}</p>
<p>password: ${password}</p>
</body>
</html>
二、解决方法(表层)
既然已经知道了问题的本质出现在jsp的EL表达式中
于是我们只需在jsp中手动开启解析EL表达式即可
即在jsp页面添加这行代码即可
<%@ page isELIgnored="false" %>
成功解决
三、具体原因
解决问题的我瞎溜达到舍友的电脑前,原本以为他会遇到同样的问题,但惊奇的发现他的jsp默认开启EL表达式(我闻到了一篇CSDN的味道)
不服气的我要来了他的项目仔细的对比的起来
终于 找到了问题所在
原来 我的项目是通过maven模板建立(懒种)
而他则是通过空模板建立web
具体的差别就是 用模板建立的web.xml版本过低 导致他所配置的jsp版本过低(查询的资料为1.2不知道对不对)所以其EL表达式默认是不解析的 即
他的
四、解决方法(深层)
打开Project Structure
删除原本的web.xml
(记得点Apply)
+一个版本高的web.xml
Apply
OK解决