12
votes

Obtenir la valeur de @requestparam sans nom spécifié

Je sais que si un paramètre ressemble à ceci: xxx

Je peux obtenir la valeur en appelant ceci: xxx

mais si Je ne spécifie pas un nom, Spring utilise automatiquement le nom de la variable. Comme ceci: xxx

si le nom de paramètre n'est pas spécifié, comment puis-je y accéder? Je sais que c'est possible car le printemps fait en quelque sorte, mais demandeparam.value () est vide dans ce cas.


1 commentaires

Le printemps La documentation dit que la valeur () renvoie "" par défaut, pas NULL. En fait, les annotations Java ne sont pas autorisées à contenir NULL.


4 Réponses :


0
votes

Appelez simplement userID , comme dans DOSMATHIGH (IDERID) . Le printemps lie tout pour vous.


0 commentaires

9
votes

Spring ne remplit pas la demande basée sur le @requestparam. Il remplit plutôt l'argument de méthode annoté avec @Requestparam (dans une méthode annotée avec @RequestMapping). Le paramètre indiqué à l'annotation @Requestparam indique le ressort du nom du paramètre de demande que vous souhaitez utiliser comme cet argument. Si vous ne fournissez pas un, le printemps par défaut à l'aide du nom de l'argument (les 2 exemples que vous donnez dans votre question sont équivalents).

Si vous essayez d'accéder à un paramètre de demande, vous devez connaître le nom de celui-ci, quel que soit le cadre que vous utilisez.


0 commentaires

4
votes

vous recommander de ne pas le faire de cette façon. PRINCIPRING Utilisez ASM Pour analyser le fichier bytecode Java et extraire le nom du paramètre d'une méthode. Mais cela ne fonctionne pas, car certains fichier .Class ne comprennent pas le nom de paramètre, il suffit de types de paramètres, cela dépend des options du compilateur.


0 commentaires

3
votes

Dans le cas de Java 8, Spring utilise StandardReFlectionParameNameMédicoverer , qui repose sur Java 8 Paramètres API .

Pour plus de détails Comment configurer les paramètres option et l'utiliser via réflexion Voir Cette réponse .


0 commentaires