Spring MVC and Web Layer
August 14, 2021
M05 Q07 What is @RequestParam used for?
@RequestParam
is used to bind web request parameters to controller method parameter.
Because Servlet API combines query parameters and form data into a single parameters map, it is possible to use @RequestParam
annotation to map:
- query parameters
- form data
- parts in multipart requests
@RequestParam
allows you to specify following parameters:
name
– the name of request parameter to bindrequired
- whether the parameter is required or not. By default parameter is required and in case of it being absent exception will be thrown. If switched tofalse
, in case of parameter being absent null value will be provided or value pointed out bydefaultValue
propertydefaultValue
– allows you to specify default value to use in case of absence of optional parameter
@RequestParam
annotation also supports Java 8 Optional, so following will be equal:
@RequestParam
also supports additional use cases, like:
- Mapping all request parameters to Map
- Mapping all values to List