SpringMVC——接收請求引數和頁面傳參
阿新 • • 發佈:2019-02-10
原文地址:http://blog.csdn.net/z69183787/article/details/41653875點選開啟連結
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;
- }
-
@RequestMapping
- 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";
- }