Je sais que si un paramètre ressemble à ceci: Je peux obtenir la valeur en appelant ceci: p> mais si Je ne spécifie pas un nom, Spring utilise automatiquement le nom de la variable. Comme ceci: p> 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. P> p>
4 Réponses :
Appelez simplement userID code>, comme dans
DOSMATHIGH (IDERID) code>. Le printemps lie tout pour vous. P>
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). P>
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. P>
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. P>
Dans le cas de Java 8, Spring utilise StandardReFlectionParameNameMédicoverer , qui repose sur Java 8 Paramètres API . P>
Pour plus de détails Comment configurer les paramètres option et l'utiliser via réflexion Voir Cette réponse . P>
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.