前端无法取得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
以上便是我的调试经过,最后那一节也许是我瞎猫碰上死耗子,但经测试也确实有效,具体是什么原因或者有说的不对的有知道的欢迎指正
本文来自博客园,作者:方德伟,转载请注明原文链接:https://www.cnblogs.com/foundway/p/13929605.html