关闭

Spring MVC 前后台传值

877人阅读 评论(10) 收藏 举报

Spring MVC的前后台传值

  1. JSP-->Controller

1). 通过post提交http://localhost:8080/spmvc01/user.action?uname=222

Controller中通过public String reg(String uname) {}接收

2).通过post提交

Controller中通过实体接收,会给实体内的同名属性赋值

public String reg2(User user) {
System.out.println("UserController.reg2()");
System.out.println(user.getUname());
return"index";
}

3).接收参数的名称与post提交的参数的名称不一样

publicString reg3(@RequestParam("uname") String name,
HttpServletRequestreq, ModelMap map) {
System.out.println("UserController.reg3()");
System.out.println(name);
map.put("a","aaa");
 
return"index";
}

  1. Controller-->JSP

1).  HttpServletRequest传值和ModelMap传值

@RequestMapping(params= "method=reg3")
publicString reg3(@RequestParam("uname") String name,
HttpServletRequestreq, ModelMap map) {
System.out.println("UserController.reg3()");
System.out.println(name);
req.setAttribute("b","111111111111");
map.put("a","aaa");
 
return"index";
}


前台接收分别用${requestScope.b},${sessionScope.a }接收

2).Controller返回ModelAndView

@RequestMapping(params= "method=reg5")
publicModelAndView reg5(String uname) {
System.out.println("UserController.reg5()");
ModelAndViewmav = new ModelAndView();
 
User u= new User("aaaa");
User u2= new User("bbbbb");
 
mav.addObject(u);
mav.addObject("uu",u2);
 
mav.setViewName("index");
returnmav;
}

前台接收:

${requestScope.user.uname}
${requestScope.uu.uname}

页面重定向,转发

    return "forward:index.jsp";
    return"forward:user.do?method=reg5"; //转发
    return"redirect:user.do?method=reg5"; //重定向
    return"redirect:http://www.baidu.com"; //重定向


 

            Spring MVC的前后台传值,相对于Struts2的传值方式更多一些,也更灵活,我想这也是SpingMVCstruts2MVC流程控制上更灵活的一点的原因。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:133990次
    • 积分:5495
    • 等级:
    • 排名:第5040名
    • 原创:163篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1659条
    最新评论