Jam*_*mes 8 spring http-request-parameters
我有来自客户端的参数,例如
ids[] = 11
ids[] = 12
ids[] = 21
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有一个Spring控制器,使用以下方法:
@RequestMapping("/delete.x")
public @ResponseBody Map<String, Object> delete(HttpServletRequest request, @RequestParam("ids[]") List<Integer> ids) {
Run Code Online (Sandbox Code Playgroud)
当我尝试迭代id的集合时,如下所示:
for (Integer id : ids) {
Run Code Online (Sandbox Code Playgroud)
我得到如下例外:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)
Spring是否将ID的类型更改为List <String>?无论我想如何,我如何避免这个问题并将ID作为整数存储在List中?
JoG*_*JoG 13
你面临的问题是java有类型擦除.所以在运行时a List<Integer>等于a,List<String>而spring无法知道你想要Integers进入你的列表.
解决方法可能是使用整数数组而不是整数列表.
@RequestMapping("/delete.x")
public @ResponseBody Map<String, Object> delete(HttpServletRequest request,
@RequestParam("ids[]") Integer[] ids) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16613 次 |
| 最近记录: |