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、永久解决办法:

修改默认版本,具体步骤如下:

img

img

进入“1.3”文件夹,找到jar包,如下图
img

用解压软件打开文件,记住不是解压。
img

按下图这个路径依次打开,找到web.xml文件:

img

直接打开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,所以修改它就等于修改了模板。

posted @ 2024-12-15 20:41  哩个啷个波  阅读(1)  评论(0编辑  收藏  举报