此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0! |
@RequestParam
您可以使用@RequestParam
注解将查询参数绑定到
控制器。以下代码片段显示了用法:
-
Java
-
Kotlin
@Controller
@RequestMapping("/pets")
public class EditPetForm {
// ...
@GetMapping
public String setupForm(@RequestParam("petId") int petId, Model model) { (1)
Pet pet = this.clinic.loadPet(petId);
model.addAttribute("pet", pet);
return "petForm";
}
// ...
}
1 | 用@RequestParam . |
import org.springframework.ui.set
@Controller
@RequestMapping("/pets")
class EditPetForm {
// ...
@GetMapping
fun setupForm(@RequestParam("petId") petId: Int, model: Model): String { (1)
val pet = clinic.loadPet(petId)
model["pet"] = pet
return "petForm"
}
// ...
}
1 | 用@RequestParam . |
Servlet API“请求参数”概念将查询参数、表单
data 和 multipart 合二为一。但是,在 WebFlux 中,每个都可以通过ServerWebExchange .而@RequestParam 绑定到查询参数,则可以使用
数据绑定,用于将查询参数、表单数据和 Multiparts 应用于 Command 对象。 |
使用@RequestParam
annotation 是必需的,但
您可以通过设置@RequestParam
自false
或者使用java.util.Optional
包装纸。
如果目标方法参数 type 不是String
.请参阅类型转换。
当@RequestParam
注解在Map<String, String>
或MultiValueMap<String, String>
参数,则 Map 中填充了所有查询参数。
请注意,使用@RequestParam
是可选的 — 例如,设置其属性。由
default,任何作为简单值类型的参数(由 BeanUtils#isSimpleProperty 确定)
并且未由任何其他参数解析 resolver 被视为已批注
跟@RequestParam
.