1. 程式人生 > 實用技巧 >SpringMVC實際應用場景

SpringMVC實際應用場景

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";
}