這篇“SpringMVC中RequestParam注解怎么用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SpringMVC中RequestParam注解怎么用”文章吧。
作用:主要用于對前端請求的參數進行一些約束,包括參數名不匹配問題、是否必須、默認值!
這個注解非常簡單,準確的說應該是MVC中除了Controller之外最簡單的注解。
@Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestParam { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; String defaultValue() default ValueConstants.DEFAULT_NONE; }
雖然有四個屬性實際上就三個,name屬性和value屬性一個意思,相互起別名跟對方一樣。
Target的元注解約束這個注解只能使用在參數上,Retention元注解表示這個注解的保存時間這里表示可以在運行時JVM反射加載到!
這兩個屬性是當前后端參數不匹配時進行前后端參數轉換,即前端 - name/value - 后端參數!
一旦加了設置name/value表示這個參數必須傳遞,否則400錯誤。
這種做法很雞肋,不匹配直接照著前端改就行,有點畫蛇添足。
@RequestMapping("/hello2") public String get2(@RequestParam("a") String args, Model model){ model.addAttribute("value", args); return "hello"; }
這個屬性是搭配name/value一起使用的,默認不指定情況下是true。
上文中發現一旦設置了name/value表示這個參數必須要有,而required可以設置為false表示這個參數可有可無!
@RequestMapping("/hello3") public String get3(@RequestParam(name = "a", required = false) String args, Model model){ model.addAttribute("value", args); return "hello"; }
表示在沒有傳遞參數的的情況下的該參數使用的默認值。
一般搭配required=false一起使用!如果required=true必須指定那還需要默認值干啥?
@RequestMapping("/hello4") public String get4(@RequestParam(name = "a", defaultValue = "這是默認值", required = false) String args, Model model){ model.addAttribute("value", args); return "hello"; }
以上就是關于“SpringMVC中RequestParam注解怎么用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。