Mou*_*rim 7 java spring spring-boot
示例网址:
../get/1?attr1=1&attr2=2&attr3=3
Run Code Online (Sandbox Code Playgroud)
我不知道 attr1、att2 和 attr3 的名称。
当我运行此代码时,我得到“allRequestParams”的大小等于1
@RequestMapping(value = "/get/", method = RequestMethod.GET)
public String search(
@RequestParam Map<String,Integer> allRequestParams) {
System.out.println(allRequestParams.size());
return "";
}
Run Code Online (Sandbox Code Playgroud)
是 Spring 有问题还是我写错了代码。谢谢!
小智 6
如果您以查询参数的形式传递请求属性,那么您可以使用 HttpServletRequest 直接获取它。作为参数传递给您的方法并像 httpServletRequest.getParameterMap() 一样使用它。这将返回请求参数的不可变 java.util.Map。映射的每个条目都将具有 String 类型的键和 String[] 类型的值。因此,如果您只有一个值,您可以直接访问,因为entry.getValue()[0]将为您提供第一个值。代码看起来像这样来访问这些值。
@RequestMapping(value = "/get/", method = RequestMethod.GET)
public String search(HttpServletRequest httpServletRequest) {
Map<String, String[]> requestParameterMap = httpServletRequest.getParameterMap();
for(String key : requestParameterMap.keySet()){
System.out.println("Key : "+ key +", Value: "+ requestParameterMap.get(key)[0]);
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 !!
对于您的具体示例,您是否缺少 @PathVariable 来访问示例 URL 中值为“1”的 Path 变量?
@RequestMapping(value = "/get/{searchId}", method = RequestMethod.GET)
public String search(
@PathVariable("searchId") Long searchId,
@RequestParam Map<String,String> allRequestParams) {
System.out.println(allRequestParams.size());
return "";
}
Run Code Online (Sandbox Code Playgroud)
另外,您正在导入 java.util.Map 吗?
| 归档时间: |
|
| 查看次数: |
19504 次 |
| 最近记录: |