2. Which of the following is the correct syntax to make a query parameter optional with a default value using @RequestParam?
easy
A. @RequestParam(value = "id", required = true, defaultValue = "0") int id
B. @RequestParam(name = "id", optional = true, default = 0) int id
C. @RequestParam(name = "id", required = false, defaultValue = "0") int id
D. @RequestParam("id", default = 0) int id
Solution
Step 1: Identify correct attributes for optional param
To make a parameter optional, use required = false and provide defaultValue as a string.
Step 2: Check syntax correctness
@RequestParam(name = "id", required = false, defaultValue = "0") int id uses required = false and defaultValue = "0" correctly; others use invalid attributes or miss required parts.
Final Answer:
@RequestParam(name = "id", required = false, defaultValue = "0") int id -> Option C
Quick Check:
Optional param syntax = A [OK]
Hint: Use required=false and defaultValue="value" for optional params [OK]
Common Mistakes:
Using 'optional' instead of 'required'
Setting defaultValue as a number instead of string
Omitting required attribute
3. Given the controller method:
@GetMapping("/greet")
public String greet(@RequestParam String name) {
return "Hello, " + name + "!";
}
What will be the output when accessing /greet?name=Anna?
medium
A. Hello, Anna!
B. Hello, null!
C. Hello, !
D. Error: Missing required parameter
Solution
Step 1: Understand @RequestParam behavior
The method expects a query parameter 'name' which is required by default.
Step 2: Check the URL query string
The URL provides ?name=Anna, so the method receives "Anna" as the parameter.
Final Answer:
Hello, Anna! -> Option A
Quick Check:
Query param 'name' = Anna, output greeting = D [OK]
Hint: If param is required and given, output uses it directly [OK]
Common Mistakes:
Assuming missing param causes null instead of error
Confusing query string with path variable
Expecting default value without setting one
4. Identify the error in this Spring Boot controller method:
@GetMapping("/search")
public String search(@RequestParam int page) {
return "Page: " + page;
}
What happens if the URL /search is accessed without any query parameters?
medium
A. The method returns "Page: 0"
B. The method returns "Page: null"
C. The method returns an empty string
D. The method throws a 400 Bad Request error
Solution
Step 1: Check @RequestParam default behavior
By default, @RequestParam is required. Since 'page' is primitive int, it cannot be null.
Step 2: Analyze missing parameter effect
Accessing /search without 'page' causes Spring to reject the request with 400 Bad Request due to missing required param.
Final Answer:
The method throws a 400 Bad Request error -> Option D
Quick Check:
Missing required param causes 400 error = C [OK]
Hint: Required params missing cause 400 error, primitives can't be null [OK]
Common Mistakes:
Assuming default 0 for missing int param
Expecting null for primitive types
Thinking method returns empty string on error
5. You want to create a Spring Boot controller method that accepts an optional query parameter sort with default value "asc" and a required parameter page. Which method signature is correct?
hard
A. @GetMapping("/items")
public String items(@RequestParam(required = false, defaultValue = "asc") String sort, @RequestParam int page) { ... }
B. @GetMapping("/items")
public String items(@RequestParam(required = true, defaultValue = "asc") String sort, @RequestParam int page) { ... }
C. @GetMapping("/items")
public String items(@RequestParam(required = false) String sort, @RequestParam(required = true) int page) { ... }
D. @GetMapping("/items")
public String items(@RequestParam String sort = "asc", @RequestParam int page) { ... }
Solution
Step 1: Set optional param with default value
Use required = false and defaultValue = "asc" for the optional 'sort' parameter.
Step 2: Ensure required param is declared correctly
The 'page' parameter is required by default, so just @RequestParam int page is enough.
Step 3: Evaluate each option
@GetMapping("/items")
public String items(@RequestParam(required = false, defaultValue = "asc") String sort, @RequestParam int page) { ... } correctly combines required=false and defaultValue for 'sort' and required 'page'. Incorrect options include one with required=true and defaultValue (still required on missing), one with required=false without defaultValue (null on missing), and one with invalid syntax.
Final Answer:
@GetMapping("/items")
public String items(@RequestParam(required = false, defaultValue = "asc") String sort, @RequestParam int page) { ... } -> Option A
Quick Check:
Optional with default + required param = B [OK]
Hint: Use required=false with defaultValue for optional params [OK]
Common Mistakes:
Omitting required=false for optional param
Trying to assign default value in method signature
Forgetting defaultValue causes errors
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.