springMVC資料傳遞案例------利用form表單提交資料
阿新 • • 發佈:2019-01-07
這一章簡單的例舉一下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介面上
總結:
繞啊繞,其實很簡單。
我們還可以在這個基礎上進行更加複雜的工作,例如先存到資料庫,另外一個通過查詢獲取資料等等
時間有限,就不一一介紹了