spring-mvc redirect后如何获得Model中的数据?

liklstar 2016-10-24 06:11:00
我从LoginController使用redirect技术重定向到BbsMaintanenceController。在源controller中使用RedirectAttributes类的addFlashAttribute("user", user),将用户信息带入目标控制器。因为我需要在目标控制器内对user信息进行处理,所以不能直接用于页面显示。
请问:我该如何在目标控制器方法中获取user数据?
...全文
1148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术控_ 2016-10-28
  • 打赏
  • 举报
回复
你返回的时候将你要传递的数据放在modelmap里面. 页面就写"redirect:页面 "不就可以了吗? 可以直接返回字符串.也可以返回modelandview
JC_WorkSpace 2016-10-28
  • 打赏
  • 举报
回复
在BbsMaintanenceController中对应的方法里面,使用@ModelAttribute标签,如:public String xxxx(@ModelAttribute("user") User user){ ... ... }
小白晒太阳 2016-10-27
  • 打赏
  • 举报
回复
引用 8 楼 liklstar 的回复:
[quote=引用 7 楼 Tro_picana 的回复:] attr.addAttribute("user", user); [quote=引用 6 楼 liklstar 的回复:] [quote=引用 3 楼 Tro_picana 的回复:] 重定向的那个方法里加参数 user(类型为你user对象所对应的model类) 不行吗?
什麽意思?清明示?[/quote]就是接受数据的参数..
  
  @RequestMapping("/xxx")
    public String xxx()  (User user) {

        return "";
    }
[/quote] 这样行吗?你说的是这样吗: 在LoginController里: {... ... return redirect:/BbsMaintanence; } 而后,在BbsMaintanenceController里: @RequestMapping("/BbsMaintanence") public String showTopBoards(User user){ ... ... return "topBoards"; } 我想出的办法和你说得有些类似: @RequestMapping("/BbsMainanence") public String showTopBoards(@ModelAttribute("user") User user){ ... ... } 这样可以吗?你确定吗?[/quote]嗯,试试看吧。不行的话还有一种办法,就是将user放到spring mvc 的session域里。本来登录以后校验登录状态的做法就是用session。

@Controller
@RequestMapping("/user")
@SessionAttributes("user")  //加上session属性声明
public class XXController {
...
...
LoginController里将user对象放到session里
modelMap.put("user", user); //放到spring的session中
...
...
BbsMaintanenceController取session里的user对象
@ModelAttribute(value = "user") User user

能源恒观 2016-10-27
  • 打赏
  • 举报
回复
引用 2 楼 liklstar 的回复:
[quote=引用 1 楼 wanghengwhwh 的回复:] 可以先把结果放到map对象中,之后再目标控制器中获取,这样应该可以的
怎麽放在Map中?难道不是放在RedirectAttributes对象中吗?还是使用model.asMap()方法? 请求详细指点?[/quote]创建一个map对象,把你的结果put进去,再到另外的控制器中获取
liklstar 2016-10-26
  • 打赏
  • 举报
回复
引用 7 楼 Tro_picana 的回复:
attr.addAttribute("user", user); [quote=引用 6 楼 liklstar 的回复:] [quote=引用 3 楼 Tro_picana 的回复:] 重定向的那个方法里加参数 user(类型为你user对象所对应的model类) 不行吗?
什麽意思?清明示?[/quote]就是接受数据的参数..
  
  @RequestMapping("/xxx")
    public String xxx()  (User user) {

        return "";
    }
[/quote] 这样行吗?你说的是这样吗: 在LoginController里: {... ... return redirect:/BbsMaintanence; } 而后,在BbsMaintanenceController里: @RequestMapping("/BbsMaintanence") public String showTopBoards(User user){ ... ... return "topBoards"; } 我想出的办法和你说得有些类似: @RequestMapping("/BbsMainanence") public String showTopBoards(@ModelAttribute("user") User user){ ... ... } 这样可以吗?你确定吗?
小白晒太阳 2016-10-26
  • 打赏
  • 举报
回复
attr.addAttribute("user", user);
引用 6 楼 liklstar 的回复:
[quote=引用 3 楼 Tro_picana 的回复:] 重定向的那个方法里加参数 user(类型为你user对象所对应的model类) 不行吗?
什麽意思?清明示?[/quote]就是接受数据的参数..
  
  @RequestMapping("/xxx")
    public String xxx()  (User user) {

        return "";
    }
liklstar 2016-10-26
  • 打赏
  • 举报
回复
引用 3 楼 Tro_picana 的回复:
重定向的那个方法里加参数 user(类型为你user对象所对应的model类) 不行吗?
什麽意思?清明示?
liklstar 2016-10-26
  • 打赏
  • 举报
回复
引用 4 楼 qq_15340759 的回复:
model应该是可以重定向一起过去的啊,就像一个map一样
是啊?model是可以过去,但是过去以后如何得到user的信息呢?没有getValue("user")类似的方法啊?
Tlsy123 2016-10-26
  • 打赏
  • 举报
回复
model应该是可以重定向一起过去的啊,就像一个map一样
小白晒太阳 2016-10-26
  • 打赏
  • 举报
回复
重定向的那个方法里加参数 user(类型为你user对象所对应的model类) 不行吗?
liklstar 2016-10-26
  • 打赏
  • 举报
回复
引用 1 楼 wanghengwhwh 的回复:
可以先把结果放到map对象中,之后再目标控制器中获取,这样应该可以的
怎麽放在Map中?难道不是放在RedirectAttributes对象中吗?还是使用model.asMap()方法? 请求详细指点?
能源恒观 2016-10-25
  • 打赏
  • 举报
回复
可以先把结果放到map对象中,之后再目标控制器中获取,这样应该可以的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧