Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring表单绑定到列表<;整数>;升级到Java 8时不工作_Spring Mvc_Java 8 - Fatal编程技术网

Spring mvc Spring表单绑定到列表<;整数>;升级到Java 8时不工作

Spring mvc Spring表单绑定到列表<;整数>;升级到Java 8时不工作,spring-mvc,java-8,Spring Mvc,Java 8,我们正在将我们的SpringMVC系统升级到从Java6编译而来的Java8。在运行时,我们将一个表单对象加载到列表中,当该列表被迭代时抛出java.lang.ClassCastException:java.lang.String 无法转换为java.lang.Integer 同样的代码在我们用Java6编译的生产环境中运行良好 下面是我们代码库的摘录 JSP 菜单: - --- 控制器 我没有添加完整的方法。但这正是它所做的 protected ModelAndView onSubmit

我们正在将我们的SpringMVC系统升级到从Java6编译而来的Java8。在运行时,我们将一个表单对象加载到列表中,当该列表被迭代时抛出java.lang.ClassCastException:java.lang.String 无法转换为java.lang.Integer

同样的代码在我们用Java6编译的生产环境中运行良好

下面是我们代码库的摘录

JSP

菜单:
-
---
控制器 我没有添加完整的方法。但这正是它所做的

 protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, ManageUserCommand command, BindException errors) throws Exception
    {
        List<Integer> selectedMenuIdList = command.getSelectedMenuIdList();
        for (Integer menu : selectedMenuIdList){//exception thrown here 
        userMenu.setMenuId(menuId);
        userMenuDao.save(userMenu);
     }
    }
submit上受保护的ModelAndView(HttpServletRequest请求、HttpServletResponse响应、ManageUserCommand命令、BindException错误)引发异常
{
List selectedMenuIdList=command.getSelectedMenuIdList();
对于(整型菜单:selectedMenuIdList){//此处引发异常
userMenu.setMenuId(menuId);
userMenuDao.save(用户菜单);
}
}
当我按照下面的方式重新编写代码时,它就工作了

Iterator<Integer> i = selectedMenuIdList.iterator();
 while(i.hasNext()){
    String temp = String.valueOf(i.next());
    Integer menuId = Integer.parseInt(temp);
    userMenu.setMenuId(menuId);
    userMenuDao.save(userMenu);
 }
Iterator i=selectedMenuIdList.Iterator();
while(i.hasNext()){
String temp=String.valueOf(i.next());
整数menuId=Integer.parseInt(temp);
userMenu.setMenuId(menuId);
userMenuDao.save(用户菜单);
}

请澄清使用java 8会出现什么问题,因为我们无法像上面那样重新编写所有代码以使其与java 8一起工作。

显示整个控制器方法(尤其是参数)。我非常怀疑它与java版本有关。这可能与升级您的SpringMVC版本有关。
Iterator<Integer> i = selectedMenuIdList.iterator();
 while(i.hasNext()){
    String temp = String.valueOf(i.next());
    Integer menuId = Integer.parseInt(temp);
    userMenu.setMenuId(menuId);
    userMenuDao.save(userMenu);
 }