SpringMVC-接收请求参数和页面传参
1.使用HttpServletRequest获取
- @RequestMapping (“/test.do” )
- public String test(HttpServletRequest request){
- String name = request.getParameter(“name” )
- String pass = request.getParameter(“pass” )
- }
2.Spring会自动将表单参数注入到方法参数,和表单的名称属性保持一致,和Struts2一样。
- @RequestMapping (“/test.do” )
- public String test(HttpServletRequest请求,String name,
- @RequestParam (“pass” )String password)
- {
- System.out.println(name);
- System.out.println(密码)
- }
3.自动注入Bean属性
- < form action = “test.do” >
- 用户名:< input name = “name” />
- 密码:< input name = “pass” />
- < input type = “submit” value = “测试” >
- </ form >
- //封装的用户类
- 公共类User {
- 私有字符串名称
- 私人字符串传递;
- }
- @RequestMapping (“/test.do” )
- public String test(用户用户)
- {
- System.out.println(name);
- System.out.println(密码)
- }
当控制器组件处理后,向jsp页面传值:
1)使用HttpServletRequest和Session然后setAttribute(),就和Servlet中一样。
2)使用ModelAndView对象。
3)使用ModelMap对象。
4)使用@ModelAttribute注解。
模型数据会利用HttpServletRequest的属性传值到test.jsp中。
- @RequestMapping (“/test.do” )
- public ModelAndView test(String name,String pass){
- user user = userService.test(name,pwd);
- Map <String,Object> data = new HashMap <String,Object>();
- data.put(“user” ,user);
- 返回新的 ModelAndView(“成功” ,数据);
- }
使用ModelMap参数对象示例:
ModelMap数据会利用HttpServletRequest的属性传值到test.jsp中。
- @RequestMapping (“/test.do” )
- public String test(String name,String pass,ModelMap model){
- user user = userService.test(name,pwd);
- model.addAttribute(“user” ,user);
- model.put(“name” ,name);
- 回报“成功” ;
- }
使用@ModelAttribute示例:
在控制器方法的参数部分或Bean属性方法上使用。
@ModelAttribute数据会利用HttpServletRequest的属性传值到test.jsp中。
- @RequestMapping (“/test.do” )
- public String test(@ModelAttribute (“user” )User user){
-
- 回报“成功” ;
- }
-
- @ModelAttribute (“name” )
- public String getName(){
- 返回 名称
- }
会话存储:
可以利用HttpServletReequest的getSession()方法。
- @RequestMapping (“/test.do” )
- public String test(String name,String pwd
- ModelMap模型,HttpServletRequest请求){
- 用户user = serService.test(name,pwd);
- HttpSession session = request.getSession();
- session.setAttribute(“user” ,user);
- model.addAttribute(“user” ,user);
- 回报“成功” ;
- }
春季MVC默认采用的是转发来定位视图,如果要使用重定向,可以如下操作:
1)使用RedirectView。
2)使用redirect:前缀。
- public ModelAndView test(){
- RedirectView view = new RedirectView(“regirstTest.do” );
- 返回新的 ModelAndView(view);
- } <strong> </ strong>
或者用如下方法,工作中常用的方法:
- public String test(){
-
- 返回“redirect:regirstTest.do” ;
- }