Spring MVC(三)
阿新 • • 發佈:2020-10-12
參考:http://c.biancheng.net/view/4406.html
討論前端傳送請求
1、傳送方式
常見的有get、post、put和delete
其中get方式的傳送資訊可見,在請求的URL上
而其它三種資訊不可見,put和delete是特殊的post
2、特殊
值直接在URL中,類似
http://a.b.c/doLogin/username/password
3、傳送格式
這主要是針對post和put、delete方式來說
json格式,或者xml格式
4、多媒體格式
前後端不分離資料接收
1、通過實體Bean接收請求引數
- 適用於get和post提交請求方式
- Bean的屬性名稱必須與請求引數名稱相同
@RequestMapping("/login")
public String login(UserForm user){}
2、通過處理方法的形參接收請求引數
- 適用於get和post提交請求方式
- 形參名必須與請求引數名稱相同
- 該方法不會報404錯誤
@RequestMapping("/register")
public String register(String uname,String upass){}
3、通過HttpServletRequest接收請求引數
- 適用於get和post提交請求方式
@RequestMapping("/register") public String register(HttpServletRequest request){}
4、通過@PathVariable接收URL中的請求引數
@RequestMapping("/user/{uname}/{upass}")
public String register(@PathVariable String uname,@PathVariable String upass){}
5、通過@RequestParam接收請求引數
- 適用於get和post提交請求引數
- 該方式會報404錯誤
@RequestMapping("/register") public String register(@RequestParam String uname, @RequestParam String upass){}
6、通過@ModelAttribute接收請求引數
- 適用於get和post提交請求方式
- 當 @ModelAttribute 註解放在處理方法的形參上時,用於將多個請求引數封裝到一個實體物件,從而簡化資料繫結流程,而且自動暴露為模型資料,在檢視頁面展示時使用
@RequestMapping("/register")
public String register(@ModelAttribute("user") UserForm user) {}
轉發與重定向
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/login")
public String login() {
//轉發到一個請求方法(同一個控制器類可以省略/index/)
return "forward:/index/isLogin";
}
@RequestMapping("/isLogin")
public String isLogin() {
//重定向到一個請求方法
return "redirect:/index/isRegister";
}
@RequestMapping("/isRegister")
public String isRegister() {
//轉發到一個檢視
return "register";
}
}
在 Spring MVC 框架中,不管是重定向或轉發,都需要符合檢視解析器的配置,如果直接轉發到一個不需要 DispatcherServlet 的資源,例如:
return "forward:/html/my.html";
則需要使用 mvc:resources 配置:
<mvc:resources location="/html/" mapping="/html/**" />