jsp前端页面识别不了后端传过来的model-${user.id}
调试:
controller 成功接收到参数。并且给model传入数据。界面也跳转了
jsp文件中使用 ${user.id} 获取数据
但是处理的依然是 ${user.id} 而不是传入来的数据。
原因: 默认创建的web,其配置文件 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" >
导致后面的servlet、jsp、EL等采用的全是2.3版本,而在2.3版本中,jsp页面是不支持EL的,无法得到正确的解析。
解决方案:
1、将前面的那一段代码删除掉。然后加入下面代码
<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_3_0.xsd"
id="WebApp_ID" version="3.0">
这个还要接着分析一下,是在pom.xml文件中导入哪个依赖生成的
我百度了一会,说是创建web-app项目时默认就是2.3,需要自己手动修改。所以这个一定要注意。
2、新建web.xml:
把web.xml删掉。在Project Structure 里面的Modules重新添加一个Web.xml,能够生成并选择版本,但是这只是作用于当前项目。
删除以后打开对应模块现在爆红,点击➖号,然后再点加号,
选择web.xml文件,此时就可以选择想要的版本了,默认4.0就行了。
3、永久解决办法:
修改默认版本,具体步骤如下:
进入“1.3”文件夹,找到jar包,如下图
用解压软件打开文件,记住不是解压。
按下图这个路径依次打开,找到web.xml文件:
直接打开web.xml,修改头文件,保存就可以了(注意:是在解压软件打开的的界面直接打开并修改web.xml,而不是解压成文件夹之后修改,也就是要保证jar包本来的结构不变)。
下面这个就是3.0的web.xml头文件,直接复制就可以。
<?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_3_0.xsd" id="WebApp_ID" version="3.0">
原因:用maven新建webapp项目时,就是以这个***1.3.jar包里的web.xml为模板去生成新项目的web.xml,所以修改它就等于修改了模板。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-12-15 COALESCE函数的使用
2021-12-15 旧表数据怎么复制到新表,新表比旧表多一个字段
2021-12-15 如何向数据库中所有表插入一个相同的字段
2021-12-15 查询数据库中所有表名的另一种方式
2021-12-15 第一个存储过程