Java 从@RequestParam获取值,但不指定名称
我知道,如果参数如下所示:Java 从@RequestParam获取值,但不指定名称,java,spring,annotations,Java,Spring,Annotations,我知道,如果参数如下所示: @RequestParam("userId") String userId 我可以通过调用以下命令来获取值: requestParam.value() 但是如果我没有指定名称,Spring会自动使用变量名。像这样: @RequestParam String userId 如果未指定参数名称,如何访问它?我知道这是可能的,因为Spring以某种方式实现了这一点,但requestParam.value()在本例中为空。只需调用userId,就像doSomething
@RequestParam("userId") String userId
我可以通过调用以下命令来获取值:
requestParam.value()
但是如果我没有指定名称,Spring会自动使用变量名。像这样:
@RequestParam String userId
如果未指定参数名称,如何访问它?我知道这是可能的,因为Spring以某种方式实现了这一点,但requestParam.value()在本例中为空。只需调用
userId
,就像doSomething(userId)
一样。Spring会为您绑定所有内容。Spring不会基于@RequestParam填充请求。相反,它填充了用@RequestParam注释的方法参数(在用@RequestMapping注释的方法中)。给@RequestParam注释的参数告诉Spring您希望它用作该参数的请求参数的名称。如果您没有提供,Spring默认使用参数的名称(因此您在问题中给出的两个示例是等效的)
如果您试图访问请求参数,则需要知道其名称,而不管您使用的是什么框架。建议您不要这样做。Spring使用
分析java字节码文件并提取方法的参数名。但有时这不起作用,因为某些.class文件不包含参数名,只包含参数类型,这取决于编译器选项。对于java 8,Spring使用,它依赖于 有关如何设置参数选项并通过反射使用该选项的详细信息,请参见。says that value()默认返回“”,而不是null。事实上,Java注释不允许包含null。