SpringMVC實際應用場景
阿新 • • 發佈:2020-08-15
1.將請求引數對映到處理程式方法上
使用@RequestParam
註解將請求引數作為處理程式方法的常規引數進行檢索。這是將控制器HttpServletRequest
與Servlet API 的介面分離的好方法。
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String doLogin(@RequestParam String username,
@RequestParam String password) {
}
Spring將方法引數使用者名稱 和密碼繫結到具有相同名稱的HTTP請求引數。這意味著您可以按以下方式呼叫URL(如果請求方法是GET):
http:// localhost:8080 / spring / login?username = scott&password = tiger
如果引數名稱與變數名稱不同,則可以如下指定引數的實際名稱:
@RequestParam("SSN") int securityNumber
該@RequestParam
註解也有兩個額外的屬性,這可能是在某些情況下是有用的。該屬性指定引數是否為必需。例如:required
@RequestParam(required = false) String country
這意味著該引數country
是可選的;因此,它可能會從請求中丟失。在上面的示例中,country
如果請求中不存在此類引數,則變數將為null。
另一個屬性是defaultValue
,可以在請求引數為空時用作後備值。例如:
@RequestParam(defaultValue = "18") int age
2.處理程式方法中的重定向
如果你希望在滿足條件的情況下將使用者重定向到另一個URL,請redirect:/
在URL之前追加。以下程式碼段給出了一個示例:
// 檢查登入狀態....
if (!isLogin) {
return new ModelAndView("redirect:/login");
}
// 返回使用者列表
3.處理表格提交和表格驗證
通過提供@ModelAttribute
用於將表單欄位繫結到表單支援物件的註解以及BindingResult
用於驗證表單欄位的介面,Spring使處理表單提交變得容易。
@Controller
public class RegistrationController {
@RequestMapping(value = "/doRegister", method = RequestMethod.POST)
public String doRegister(
@ModelAttribute("userForm") User user, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
// 表單驗證錯誤
} else {
// 表單輸入沒問題
}
// 註冊過程……
return "Success";
}
}
4.處理檔案上傳
通過自動將上傳資料繫結到CommonsMultipartFile
物件陣列,Spring還使在處理程式方法中處理檔案上傳變得容易。Spring使用Apache Commons FileUpload作為基礎的多部分解析器。
@RequestMapping(value = "/uploadFiles", method = RequestMethod.POST)
public String handleFileUpload(
@RequestParam CommonsMultipartFile[] fileUpload) throws Exception {
for (CommonsMultipartFile aFile : fileUpload){
// 儲存上傳的檔案
aFile.transferTo(new File(aFile.getOriginalFilename()));
}
return "Success";
}