SpringMVC之RequestParam詳解

定義與作用

此註解用於從請求正文中獲取請求參數,給控制器形參賦值。如果控制器方法形參與請求正文中的參數名一致時,就無需使用該註解。在spring2.5之後出現。
當請求中沒有參數時,RequestParam註解還能爲該形參提供一個默認值。

//只能作用於方法形參上。
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {

	//參數名,如果方法形參與請求傳遞過來的參數名不一致時,就要使用該屬性進行參數綁定,該屬性的值要與要綁定的請求參數名一致。
	@AliasFor("name")
	String value() default "";

	//與value屬性互爲別名。作用一樣
	@AliasFor("value")
	String name() default "";

	/**
	 * 該參數是否必須,如果true的話,當請求中沒有傳遞該參數就報錯。
	 */
	boolean required() default true;

	/**
	 *默認值,當獲取的不到請求中的該參數時就提供一個默認值。
	 */
	String defaultValue() default ValueConstants.DEFAULT_NONE;

}

@Controller
public class RequestParamController {

    @RequestMapping("testRequestParam1")
    public String testRequestParam1(String name,String value){
        System.out.println("name = " + name);
        System.out.println("value = " + value);
        return "RequsetParamDemo";
    }

    @RequestMapping("testRequestParam2")
    public String testRequestParam2(User user){
        System.out.println("user = " + user);
        return "RequsetParamDemo";
    }


}

testRequestParam1結果:
在這裏插入圖片描述
在這裏插入圖片描述
因爲請求參數與控制器形參一樣,所以能夠進行正常的參數綁定。
如果請求參數與控制器形參一樣,不一樣。
在這裏插入圖片描述
在這裏插入圖片描述
參數綁定失敗。
此時就要使用RequestParam註解。
在這裏插入圖片描述
在這裏插入圖片描述
綁定成功。 這是RequestParam主要功能。

如果形參時實體類,或者不是基本類型及其包裝類以及string的話,RequestParam的綁定就沒有用處。要使用其他方法或者遵循springmvc約定。

使用boolean required() default true;

該屬性用於標誌該參數是否必須,如果爲true,並且請求中沒有找到該參數進行綁定就會報400錯誤。默認爲true。
在這裏插入圖片描述
少了value1參數。
改爲false。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
請求成功,但是爲null值,因爲沒有綁定到。

String defaultValue() default ValueConstants.DEFAULT_NONE;

當沒有綁定到參數時,提供一個默認值。

@RequestMapping("testRequestParam3")
    public String testRequestParam3( @RequestParam(name = "page",defaultValue = "1") Integer page){
        System.out.println("page = " + page);
        return "RequsetParamDemo";
    }

請求不提供page參數。
在這裏插入圖片描述
在這裏插入圖片描述
使用默認值1

請求添加page參數
在這裏插入圖片描述
在這裏插入圖片描述
就使用請求傳遞的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章