关于modelmap.addAttribute("",)转到jsp页面获取不到值的问题

问题一,可能是你设置的web.xml的头有问题

掉坑里好一会,发现我默认生成的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 version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

看到没有,居然是web-app_2_3.dtd,这就导致后面的servlet、jsp、EL等采用的全是2.3版本,而在2.3版本中,jsp页面是不支持EL的,所以当我们在jsp中使用语句${requestScope.test} ,无法得到正确的解析。

将他设置为3.0以上的版本即可

把DOCTYPE 引掉,然后在web-app中,黏贴如下代码

<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">

问题二:可能就是你controller设置的返回值有问题

一开始我是设置成转发重定向的

modelMap.addAttribute("test",stest);
        request.getRequestDispatcher("WEB-INF/page/show.jsp").forward(request,response);

发现根本就没有把参数传递过去

-----------------------------------------------

 后来发现我已经设置了视图解析器,可以直接返回路径,不需转发就可以到达目的地

return "show";

 完美解决。

转发与重定向就不用放在ssm框架上进行页面跳转了

原文地址:https://www.cnblogs.com/aashui/p/8881104.html