SpringMVC在从后台往前台回传数据时,可以用传统的HttpServletRequest、HttpSession和ApplicationContext作用域对象进行传值,此外,也可使用SpringMVC自己提供的Model来进行值传递,具体实现如下:
HttpServletRequest
@RequestMapping("testForRequest")
public String testForRequest(String uname,Integer pwd, HttpServletRequest request){
// 业务处理
System.out.println("testForRequest接收到的数据:uname:"+uname+",pwd:"+pwd);
request.setAttribute("str","我在测试request作用域");
return "forward:requestTest.jsp";
}
HttpSession
@RequestMapping("testForSession")
public String testForSession(String uname, Integer pwd, HttpSession session){
// 业务处理
System.out.println("testForSession接收到的数据:uname:"+uname+",pwd:"+pwd);
session.setAttribute("str","我在测试session作用域");
return "redirect:sessionTest.jsp";
}
ApplicationContext
此方式注意,DispatcherServlet无法将ApplicationContext对象的实参向单元方法进行传递,故需要使用HttpServletRequest进行获取,如下:
@RequestMapping("testForApplication")
public String testForApplication(String uname, Integer pwd, HttpServletRequest request){
// 业务处理
System.out.println("testForApplication接收到的数据:uname:"+uname+",pwd:"+pwd);
request.getServletContext().setAttribute("str","我在测试applicationcontext作用域");
return "redirect:applicationContextTest.jsp";
}
Model
@RequestMapping("testForModel")
public String testForModel(String uname, Integer pwd,Model model){
// 业务处理
System.out.println("testForModel接收到的数据:uname:"+uname+",pwd:"+pwd);
// 响应回传
model.addAttribute("str","我在测试SpringMVC的Model传递数据");
// 转发:
// return "forward:requestTest.jsp";
// 重定向:
return "redirect:model.jsp";
}
如果返回的是redirect方式,则model会将参数拼成键=值对的方式拼接在链接末尾进行重定向,例如:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。