資料綁定和類型轉換,就是把請求中的參數轉換成對應的變量,提供給後續的服務處理。HTTP請求隻能傳遞字元串類型的參數,但是背景程式需要的變量類型就會多種多樣了,比如int, long甚至是javabean這種自定義類型,如果架構能幫我們自動處理這些類型轉換,就再好不過了。
SpringMVC中,最常使用的參數綁定方式是@RequestParam,不管是URL上的queryParam還是POST body中的FormParam都可以使用這個注解獲得,并且會自動根據參數的類型進行類型轉換。
比如,@RequestParam("priority") int priority,就會自動從請求中獲得名為priority的參數,并轉換成int類型,背景方法中可以直接使用。
也可以獲得一個清單,比如前台傳遞的參數是selectedItem=1&selectedItem=2,可以使用@RequestParam("selectedItem") List<Long> selectedItem,直接把多個同名參數轉換成一個清單。
如果某個參數可能不傳遞給背景,可以使用@RequestParam(value = "id", required = false) Integer id,那麼在沒有傳遞參數id時,就會傳遞null。
如果想獲得請求傳遞的所有參數,可以使用@RequestParam MultivalueMap parameterMap,parameterMap中包含的就是請求中的所有參數了。
如果想把參數id=1&name=Lingo的值傳入對應的javabean中,也可以使用@ModelAttribute UserBase userBean,SpringMVC會自動根據參數名與javabean中屬性名的對應關系,把參數值複制到javabean中,這在前台表單有幾十個參數需要傳遞給背景的情況就十分有用了。