J'ai un contrôleur Springboot avec deux points d'extrémité d'obtention: Le comportement que je veux est-ce appelé: p> Actuellement, je reçois une erreur: p> Toutes idées Comment déterminer un point final par défaut lorsque des params de zéro sont spécifiés? p> p>
/ foo code> appelle le premier point final avec un optionnel x code> param. li>
/ foo? x = 123 code> appelle le premier point final avec un x code> param. li>
/ foo? x = 123 & y = 456 'appelle le second point d'extrémité avec les paramètres code> x code> et code> y`. li>
ul>
3 Réponses :
Vous pouvez spécifier un printemps convertira defaultValue code> sous forme de chaîne code> dans @Requestparam code>: chaîne code> à n'importe quel type que vous voulez vraiment ( int code> dans votre cas) en utilisant la même méthode que si vous avez spécifié x code> comme paramètre (même coercition , erreurs, etc.). p> p>
Définir un @RequestMapping Code> ou ses variantes ( @getMappe code>, @postMapping code> etc)
Si vous voulez plus d'une mappage sur la même URL (beaucoup de fois, c'est une codesMell, mais il est parfois nécessaire, vous pouvez faire des paramètres de filtre dans @getMapping code> ou ou @RequestMapping code> Annotations 'Params Element. @RestController
@RequestMapping("/foo")
class MyController {
@GetMapping(params = ["!y"])
fun getFoo(
@RequestParam("x", required = false) x: Int?
) = ...
@GetMapping(params = ["x", "y"])
fun getFoo(
@RequestParam("x", required = true) x: Int,
@RequestParam("y", required = true) y: Int
) = ...
}