Comment vérifier le paramètre de la requête n'est pas vide Chaîne dans les paramètres @RequestMapping?
Dans mon contrôleur je paramètre de Chaîne, contenant une pièce d'identité, qui ne doit pas être nul de chaîne vide. Je me demandais, est-il un moyen de vérifier qu'il n'est pas une Chaîne vide dans @RequestMapping params?
J'ai essayé de le résoudre, à certains égards,
@RequestMapping(value = someURL, params = {"id"})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id="})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id=\"\""})
public SomeResponse doSomething(@RequestParam(required = true) String id)
sans succès.
Ce que je comprends, à la fois params = {"id"}
et @RequestParam(required = true)
peut seulement vérifier que le paramètre id
est présenté dans la demande (!= null).
Il est plus que probable que je dois vérifier qu'avec le code de contrôleur de boby, comme
if (id == null || id.isEmpty()) {
return someErrorResponse;
}
mais s'il vous plaît corrigez-moi si j'ai tort.
Merci à l'avance.
P. S. mon application est en cours d'exécution sur Java 1.7 SE dans Apache Tomcat 7.0.62 conteneur
source d'informationauteur WeGa
Vous devez vous connecter pour publier un commentaire.
Selon le Ressort code qui utilise cette annotation
Quelque chose comme cela devrait fonctionner:
Si vous voulez être Java EE compatible avec des validations utilisation
@Size(min=1)
.Hibernate Validator a
@NotEmpty
annotation à cette fin. Mais ce n'est pas une partie de Java spec.BTW, garder
required=true
comme ci-dessus les notifications de ne pas appliquer la présence du paramètre dans la requête.MODIFIER réaction sur commentaire:
De printemps de l'est de Java EE Validation conforme, donc @la Taille de l'annotation devrait fonctionner si vous avez quelques Java EE API de validation implmentor sur le chemin de classe. J'ai utilisé seulement hibernate validator jusqu'à présent. De sorte que vous pouvez activer ces fonctionnalités de validation par l'ajout de cette dans le classpath:
que vous pouvez annoter votre contrôleur avec
@Validated
d'annotation et de le faire:Vous pouvez également personnaliser le message d'erreur qui sera envoyé au client.
Si vous n'êtes pas familier avec Java EE de la validation, je vous propose de commencer à chercher elle est super important si vous êtes à la création de REPOS/point de terminaison HTTP. Il ouvrira de nouveau monde pour vous.
Démarrer avec Java EE Tutoriel pour la validation
La partie pertinente de Printemps doc
Vous pouvez utiliser
defaultValue
comme dansMais, encore une fois, vous aurez à utiliser un si comme
Sinon, vous pouvez créer un filtre pour cet effet, comme indiqué dans cet exemple
Comment utiliser un filtre de servlet Java pour modifier l'arrivée d'un servlet url de la requête?