SpringMVC Contoller中的俩个方法如何传值,例如传递对象?

fox123871 2019-08-07 06:48:39
@Controller
public class ActionChuanZhiController {

@RequestMapping(value="/a1.html")
public String A(Model m)
{
System.out.println("-------------AIndex-------------");
User u = new User();
u.setSname("admin");
u.setSage(20);
m.addAttribute("u", u);
m.addAttribute("name","james");
m.addAttribute("age",34);
return "redirect:/a2.html";

}

@RequestMapping(value="/a2.html")
public String B()
{
return "show";
}
}

如何在B方法中,获取在A中设置的内容,或者A如何保存内容,B中可以直接获取?例如存一个变量或者对象,B中都可以获取不用session的情况下
...全文
526 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baichangda234 2019-08-12
  • 打赏
  • 举报
回复
这个可以的,你需要连接一些session的原理 http请求是无状态的,就是说A,B其实是没有任何关系的,那么session是如何确定多个请求在一起的 答案是在request中的cookies中,两个请求会有一摸一样的sessionid的值,你可以在A,B方法中加一个 HttpServletRequest 参数,debug就能看到 那么你知道这个原理就简单了,你可以模拟session的这种思想,例如在A,B方法各加一个参数标识符,表明两者需要读取同一份数据 ,然后在A中将标识符作为key,数据作为value存在一个全局map,在B中通过这个标识符取出来
ouyangxiaokang6 2019-08-08
  • 打赏
  • 举报
回复
把A中设定的内容放到session里面,然后B从session里面拿。
瘦死的黑骆驼 2019-08-07
  • 打赏
  • 举报
回复
不用session恐怕无法做到,因为spring的controller是单例的,url映射是方法级的,和Struts不一样,不要定义全局变量,有线程安全隐患。而且,你既然是redirect,request中的请求变量自然是获取不到了,forward不好么?
菜鸟①个 2019-08-07
  • 打赏
  • 举报
回复
@SessionAttributes

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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