欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC中RequestParam注解的簡單理解

 更新時間:2022年03月14日 09:39:44   作者:Splaying  
@RequestMapping RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中RequestParam注解的簡單理解,需要的朋友可以參考下

1、前言

作用:主要用于對前端請求的參數(shù)進(jìn)行一些約束,包括參數(shù)名不匹配問題、是否必須、默認(rèn)值!

這個注解非常簡單,準(zhǔn)確的說應(yīng)該是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屬性

這兩個屬性是當(dāng)前后端參數(shù)不匹配時進(jìn)行前后端參數(shù)轉(zhuǎn)換,即前端 - name/value - 后端參數(shù)!

一旦加了設(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一起使用的,默認(rèn)不指定情況下是true。

上文中發(fā)現(xiàn)一旦設(shè)置了name/value表示這個參數(shù)必須要有,而required可以設(shè)置為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ù)使用的默認(rèn)值。

一般搭配required=false一起使用!如果required=true必須指定那還需要默認(rèn)值干啥?

@RequestMapping("/hello4")
public String get4(@RequestParam(name = "a", defaultValue = "這是默認(rèn)值", required = false) String args, Model model){
    model.addAttribute("value", args);
    return "hello";
}

總結(jié)

到此這篇關(guān)于SpringMVC中RequestParam注解的文章就介紹到這了,更多相關(guān)SpringMVC RequestParam注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論