SpringMVC——接收请求参数和页面传参
Posted OkidoGreen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC——接收请求参数和页面传参相关的知识,希望对你有一定的参考价值。
Spring接收请求参数:
1,使用HttpServletRequest获取
Java代码- @RequestMapping("/login.do")
- public String login(HttpServletRequest request)
- String name = request.getParameter("name")
- String pass = request.getParameter("pass")
2,Spring会自动将表单参数注入到方法参数,和表单的name属性保持一致。和Struts2一样
Java代码- @RequestMapping("/login.do")
- public String login(HttpServletRequest request,
- String name,
- @RequestParam("pass")String password) // 表单属性是pass,用变量password接收
- syso(name);
- syso(password)
3,自动注入Bean属性
Java代码
- <form action="login.do">
- 用户名:<input name="name"/>
- 密码:<input name="pass"/>
- <input type="submit" value="登陆">
- </form>
- //封装的User类
- public class User
- private String name;
- private String pass;
Java代码
- @RequestMapping("/login.do")
- public String login(User user)
- syso(user.getName());
- syso(user.getPass());
向页面传值:
当Controller组件处理后,向jsp页面传值,
1,使用HttpServletRequest 和 Session 然后setAttribute(),就和Servlet中一样
2,使用ModelAndView对象
3,使用ModelMap对象
4,使用@ModelAttribute注解
Model数据会利用HttpServletRequest的Attribute传值到success.jsp中
Java代码- @RequestMapping("/login.do")
- public ModelAndView login(String name,String pass)
- User user = userService.login(name,pwd);
- Map<String,Object> data = new HashMap<String,Object>();
- data.put("user",user);
- return new ModelAndView("success",data);
使用ModelMap参数对象示例:
ModelMap数据会利用HttpServletRequest的Attribute传值到success.jsp中
Java代码- @RequestMapping("/login.do")
- public String login(String name,String pass ,ModelMap model)
- User user = userService.login(name,pwd);
- model.addAttribute("user",user);
- model.put("name",name);
- return "success";
使用@ModelAttribute示例
在Controller方法的参数部分或Bean属性方法上使用
@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中
Java代码- @RequestMapping("/login.do")
- public String login(@ModelAttribute("user") User user)
- //TODO
- return "success";
- @ModelAttribute("name")
- public String getName()
- return name;
Session存储:
可以利用HttpServletReequest的getSession()方法
Java代码- @RequestMapping("/login.do")
- public String login(String name,String pwd
- ModelMap model,HttpServletRequest request)
- User user = serService.login(name,pwd);
- HttpSession session = request.getSession();
- session.setAttribute("user",user);
- model.addAttribute("user",user);
- return "success";
Spring MVC 默认采用的是转发来定位视图,如果要使用重定向,可以如下操作
1,使用RedirectView
2,使用redirect:前缀
Java代码- public ModelAndView login()
- RedirectView view = new RedirectView("regirst.do");
- return new ModelAndView(view);
或者用如下方法,工作中常用的方法:
Java代码- public String login()
- //TODO
- return "redirect:regirst.do";
以上是关于SpringMVC——接收请求参数和页面传参的主要内容,如果未能解决你的问题,请参考以下文章
Spring/Boot/Cloud系列知识:SpringMVC 传参详解(上)
Spring/Boot/Cloud系列知识:SpringMVC 传参详解(上)