Java Spring Controller Parameter ValidierungJava

Java-Forum
Anonymous
 Java Spring Controller Parameter Validierung

Post by Anonymous »

Ich habe einen Federcontroller mit einem Suchendpunkt: < /p>

Code: Select all

@RestController
public class MyController {
@GetMapping("/search")
public String search(@RequestParam("q") final String searchQuery) {
return "You searched: " + searchQuery;
}
}
Ich möchte dem SearchQuery Parameter Validierung hinzufügen, um sicherzustellen, dass er nicht länger als 10 Zeichen sein kann. Ich habe zwei Ansätze ausprobiert, die beide nicht funktionieren.

Code: Select all

@RestController
@Validated
public class MyController {
@GetMapping("/search")
public String search(@RequestParam("q") @Size(max = 10) @Valid final String searchQuery) {
return "You searched: " + searchQuery;
}
}
Versuch 2-Verwenden Sie "Datenübertragungsobjekt" (dto) "Muster:

Code: Select all

// DTO class for search query
public class SearchQuery {
@NotBlank(message = "Search query must not be empty")
@Size(max = 10, message = "Search query must be 10 or less characters")
private String searchQuery;

public void setSearchQuery(final String searchQuery) {
this.searchQuery = searchQuery;
}

public String getSearchQuery() {
return searchQuery;
}
}

// Controller
@RestController
@Validated
public class MyController {
@GetMapping("/search")
public String search(@Valid final SearchQuery searchQuery) {
return "You searched: " + searchQuery.getSearchQuery();
}
}
Außerdem kann ich, wenn ich das DTO -Muster verwende, den Endpunkt mit/such? Ich weiß nicht, warum das nicht funktioniert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post