前端无法取得ModelAndView中的值

在Controller中通过ModelAndView向前端传递了一个状态参数

@RequestMapping("/login")
    public ModelAndView login(@RequestParam("userName") String userName, @RequestParam("passWord") String passWord) Integer logNameType){
        ModelAndView mv = new ModelAndView("index");
        mv.addObject("status", Constants.LOGIN_PASSWORD_ERROR);
        return mv;
    }

在返回的页面中通过以下方式获取ModelAndView添加的参数却怎么也获取不到

<input type="hidden" value="${requestScope.status}" />

在接下来的调试中试过了几乎所有目前能搜索到的解决方法,如:

1、通过mav.addObject()、mav.getModel().put()等方法传值

相关链接在此:https://www.cnblogs.com/caoyc/p/5635782.html

2、旧版JSP默认忽略EL表达式,所以头部修改为

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

3、直接通过request.setAttribute()添加

经我在后续的调试中偶然发现,前端不仅不能获取到参数,还无法跳转页面,因为之前的跳转都是跳转回原页面,一时间没有发现

在浏览过多个相关帖子后看到一个网友说ajax提交数据页面不会跳转,我想,如果页面不跳转是否参数也传不过来呢?

抱着试一试的想法将ajax改成了window.location.href提交数据,结果成功跳转页面并取到相关参数

相关链接在此:https://blog.csdn.net/qq_40058321/article/details/79323837

 

以上便是我的调试经过,最后那一节也许是我瞎猫碰上死耗子,但经测试也确实有效,具体是什么原因或者有说的不对的有知道的欢迎指正

posted @ 2020-11-05 01:04  方德伟  阅读(1075)  评论(0)    收藏  举报