SpringMVC中RequestParam注解的簡單理解
1、前言
作用:主要用于對前端請求的參數(shù)進行一些約束,包括參數(shù)名不匹配問題、是否必須、默認值!
這個注解非常簡單,準確的說應該是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的元注解約束這個注解只能使用在參數(shù)上,Retention元注解表示這個注解的保存時間這里表示可以在運行時JVM反射加載到!
2、name/value屬性
這兩個屬性是當前后端參數(shù)不匹配時進行前后端參數(shù)轉換,即前端 - name/value - 后端參數(shù)!
一旦加了設置name/value表示這個參數(shù)必須傳遞,否則400錯誤。
這種做法很雞肋,不匹配直接照著前端改就行,有點畫蛇添足。
@RequestMapping("/hello2")
public String get2(@RequestParam("a") String args, Model model){
model.addAttribute("value", args);
return "hello";
}

3、required屬性
這個屬性是搭配name/value一起使用的,默認不指定情況下是true。
上文中發(fā)現(xiàn)一旦設置了name/value表示這個參數(shù)必須要有,而required可以設置為false表示這個參數(shù)可有可無!
@RequestMapping("/hello3")
public String get3(@RequestParam(name = "a", required = false) String args, Model model){
model.addAttribute("value", args);
return "hello";
}

4、defaultValue屬性
表示在沒有傳遞參數(shù)的的情況下的該參數(shù)使用的默認值。
一般搭配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注解的文章就介紹到這了,更多相關SpringMVC RequestParam注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法
Servlet是JavaWeb應用程序中不可或缺的組件之一,本文主要介紹了IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2023-10-10
Java調用wsdl接口的兩種方法(axis和wsimport)
本文主要介紹了Java調用wsdl接口的兩種方法(axis和wsimport),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03

