还是SpringMVC重定向参数的问题

我用的是SpringMVC 4.2.4。

    @RequestMapping(value = "/test1", method = RequestMethod.POST)
    public String test1(@Validated SysUser sysUser, BindingResult result, RedirectAttributes attr) {
        String url = "redirect:/index.jsp";
        try {
            if (result.hasErrors()) {
                Map<String, String> errors = buileValidatedMessage(result);
                System.out.println(errors);
                attr.addFlashAttribute("errMsg", errors);
                attr.addFlashAttribute("myinfo", "123456789");
                attr.addAttribute("info", 55);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return url;
    }

页面:

    <h2>Hello World!</h2>
    <h3>1.${myinfo}</h3>
    <h3>2.${errMsg}</h3>
    <h3>3.${info}</h3>

这样在页面上没有数据输出,但是在页面上获取session信息:

 <%
    Enumeration<String> names1 = session.getAttributeNames();
    while (names1.hasMoreElements()) {
        String name = names1.nextElement();
        out.println(name + " : " + session.getAttribute(name) + "<br>");
    }
%>

这样就能看到里面的数据:

 org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS : [FlashMap [attributes={errMsg={fdPassword=密码不能空, fdUsername=用户名不能空;用户名长度必须在3~10个字符之间}, myinfo=123456789}, targetRequestPath=/smart/index.jsp, targetRequestParams={info=[55]}]]

我想知道这些数据要怎样才能正常显示出来呢?

3个回答

@RequestMapping(value = "/test1", method = RequestMethod.POST)
public ModelAndView test1(@Validated SysUser sysUser, BindingResult result, RedirectAttributes attr) {
String url = "redirect:/index.jsp";
try {
if (result.hasErrors()) {
Map errors = buileValidatedMessage(result);
System.out.println(errors);
attr.addFlashAttribute("errMsg", errors);
attr.addFlashAttribute("myinfo", "123456789");
attr.addAttribute("info", 55);
}
} catch (Exception e) {
e.printStackTrace();
}
return new ModelAndView("redirect:/index.jsp?errMsg="+errors+"&myinfo=123456789&info=55");
}
改为这样写试试

diypyh
diypyh 我不想在URL中体现出来,SpringMVC有提供一个暂时保存在session中的方法,但是我按他的做法就是实现不了。
大约 4 年之前 回复

RedirectAttributes,,将参数放到这里面就能重定向到jsp页面了

diypyh
diypyh 我就是放到这里的呀,但是到页面上用EL就是获取不出来。
大约 4 年之前 回复

你可以试试${sessionScope['org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS'][0][key]}这样的方式
参考博客:http://ljyav8b.blog.163.com/blog/static/269016720167412024479/

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问