1. 程式人生 > >springMVC資料傳遞案例------利用form表單提交資料

springMVC資料傳遞案例------利用form表單提交資料

這一章簡單的例舉一下form表單是怎麼講資料傳遞到後臺,又是怎麼接收,再傳回來
執行用的框架是之前搭建的,已經匯出來了,有興趣的可以直接去下載

在這個框架的基礎上加入了幾個jsp頁面,並修改了controller.

  • controller
@Controller
@RequestMapping("/user")
public class UserController {

    /*
     public void test(){
     System.out.println("spring success");
     }
     */

    @Autowired
private UserService userService; //requestMapping用於指定對映路徑,這裡可以看成當路徑為/user/findUser時將會被對映到此方法 @RequestMapping("findUser") public String getUser(HttpServletRequest request){ //用List接收結果 List<User> user = userService.getUser(); //把結果放到相應的request域中 request.setAttribute("User"
, user); //返回一個檢視 return "/User"; } @RequestMapping("name") public String getUser(HttpServletRequest request,String name){ System.out.println("name id" + name); return "user/name"; } @RequestMapping("login") public ModelAndView login(){ System.out.println("login() login"
); ModelAndView mav = new ModelAndView("input"); return mav; } @RequestMapping("output") public ModelAndView login1(){ System.out.println("login1() input"); ModelAndView mav = new ModelAndView("login"); return mav; } //用於接收引數,並且返回到output頁面 @RequestMapping("input") public ModelAndView login2(@RequestParam("yonghu")String yonghu,@RequestParam("mima")String mima){ System.out.println("login2() output"); ModelAndView mav = new ModelAndView("output"); mav.addObject("yonghu",yonghu); mav.addObject("mima",mima); return mav; }
  • input.jsp
//前面就不說了,這裡主要是body中的程式碼
<body>

     <form id="form1" name="myform" method="get" action="http://localhost:8080/spring_mybatis_springmvc/user/input">
        使用者:<input type="text" name="yonghu"/>
        密碼:<input type="password" name="mima"/>
        input:<input type="submit"/>
     </form>
</body>
  • output.jsp
  <body>
      <form id="form2" name="myform" method="get" action="http://localhost:8080/spring_mybatis_springmvc/user/login">
     output<input type="submit"/>
     </form>
    <p>使用者是: ${yonghu}</p>
    <p>密碼是:${mima}</p>

  </body>

1.輸入:

    http://localhost:8080/spring_mybatis_springmvc/user/login

這裡寫圖片描述

//這裡執行的是這一串程式碼
//由user----login-----再通過ModelAndview的設定到input介面
//後臺列印-----login() login
@Controller
@RequestMapping("/user")
public class UserController {
.......
@RequestMapping("login")
    public ModelAndView login(){  
        System.out.println("login() login");
        ModelAndView mav = new ModelAndView("input");  
        return mav;
    }
    .......
}

2.結果

接著我們輸入使用者,密碼,確定

//首先執行的是input頁面中的from內action操作
action="http://localhost:8080/spring_mybatis_springmvc/user/input"

//接著,由http://localhost:8080/spring_mybatis_springmvc/user/input,後臺將會將其對映到對應的方法上

//用於接收引數,並且返回到output頁面
//這裡接收了yonghu,mima引數,並且利用modelandview傳遞到檢視
//返回output介面
    @RequestMapping("input")
    public ModelAndView login2(@RequestParam("yonghu")String yonghu,@RequestParam("mima")String mima){ 
        System.out.println("login2() output");
        ModelAndView mav = new ModelAndView("output");  
        mav.addObject("yonghu",yonghu);
        mav.addObject("mima",mima);

        return mav;
    }  

這裡寫圖片描述

得到結果如圖。
整個流程就這樣:
login—後臺接收到url—-對映到@RequestMapping(”login”)對應的方法上——根據return返回的檢視名—–跳轉到input頁面——輸入資料,action—–按照action的url用get方法發起請求——後臺接收——對映到@RequestMapping(”input”)方法上——–根據modelAndView設定的檢視名—–進行檢視解析—–資料顯示在output.jsp介面上

總結:
繞啊繞,其實很簡單。
我們還可以在這個基礎上進行更加複雜的工作,例如先存到資料庫,另外一個通過查詢獲取資料等等
時間有限,就不一一介紹了