使用 @RequestParam 將請求參數綁定至方法參數 你可以使用 註解將請求參數綁定到你控制器的方法參數上。 下麵這段代碼展示了它的用法: 若參數使用了該註解,則該參數預設是必須提供的,但你也可以把該參數標註為非必須的:只需要將 註解的 屬性設置為 即可: 註意:這裡使用的 是將請求的參數設置 ...
使用 @RequestParam 將請求參數綁定至方法參數
你可以使用 @RequestParam
註解將請求參數綁定到你控制器的方法參數上。
下麵這段代碼展示了它的用法:
package com.pudding.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class EditPetForm {
@GetMapping("/pets")
public String setupForm(@RequestParam int petId) {
System.out.println(petId);
return "petForm";
}
}
若參數使用了該註解,則該參數預設是必須提供的,但你也可以把該參數標註為非必須的:只需要將 @RequestParam
註解的 required
屬性設置為 false
即可:
package com.pudding.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class EditPetForm {
@GetMapping("/pets")
public String setupForm(@RequestParam(value = "petId", required = false) Integer petId) {
System.out.println(petId);
return "petForm";
}
}
註意:這裡使用的 required = false
是將請求的參數設置為 null
,所以方法里的參數需要為引用類型(Integer
),如果使用的是基本類型(int
)會出現以下錯誤:
java.lang.IllegalStateException: Optional int parameter 'petId' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.