java.lang.NumberFormatException:对于输入字符串:";id";

java.lang.NumberFormatException:对于输入字符串:";id";,java,spring,jsp,Java,Spring,Jsp,我正在使用SpringMVC开发一个项目,在JSP文件中显示用户列表。我的控制器文件有: Map<String, Object> model = new HashMap<String, Object>(); model.put("user", userService.getUser()); //userService.getUser() returns a List <c:if test="${!empty user}"> <table>

我正在使用SpringMVC开发一个项目,在JSP文件中显示用户列表。我的控制器文件有:

Map<String, Object> model = new HashMap<String, Object>();
model.put("user", userService.getUser()); //userService.getUser() returns a List
<c:if test="${!empty user}">  
  <table>
    <tr>  
      <td>User Id</td>  
      <td>First Name</td>  
      <td>Last Name</td>  
      <td>Gender</td>  
      <td>City</td>  
   </tr>  
   <c:forEach items="${user}" var="user">
   <tr>  
     <td><c:out value="${user.id}"/></td>  
     <td><c:out value="${user.firstName}"/></td>  
     <td><c:out value="${user.lastName}"/></td>  
     <td><c:out value="${user.gender}"/></td>  
     <td><c:out value="${user.city}"/></td>  
   </tr>  
   </c:forEach>  
  </table>  
</c:if>
Map model=newhashmap();
put(“user”,userService.getUser())//getUser()返回一个列表
JSP文件具有:

Map<String, Object> model = new HashMap<String, Object>();
model.put("user", userService.getUser()); //userService.getUser() returns a List
<c:if test="${!empty user}">  
  <table>
    <tr>  
      <td>User Id</td>  
      <td>First Name</td>  
      <td>Last Name</td>  
      <td>Gender</td>  
      <td>City</td>  
   </tr>  
   <c:forEach items="${user}" var="user">
   <tr>  
     <td><c:out value="${user.id}"/></td>  
     <td><c:out value="${user.firstName}"/></td>  
     <td><c:out value="${user.lastName}"/></td>  
     <td><c:out value="${user.gender}"/></td>  
     <td><c:out value="${user.city}"/></td>  
   </tr>  
   </c:forEach>  
  </table>  
</c:if>

用户Id
名字
姓
性别
城市
显示上述JSP文件时,显示输入字符串的java.lang.NumberFormatException:“id”。谁能帮我找出解决办法吗


非常感谢。

NumberFormatException
在将字符串转换为数字的尝试失败时发生。检查您的输入数据中是否有任何应该是数字的数据实际上接收到了不同的内容(例如:可能是因为空字符串,无法转换为数字)。

第一条好规则:包含可以用复数命名的列表的变量,例如,用户列表将名称“users”:


除了heldrarocha和Damien的答案之外,我认为您的问题在于在将ID添加到用户对象之前没有检查ID

确保User中的id变量是整数(或long或其他类型)。这样,如果您从数据库中填充它,您的行映射器将添加数值

如果必须是字符串,请确保输入的内容都是数字

检查字符串是否为数字的一种简单方法是使用Apache Commons StringUtils isNumeric方法:


我不确定您的问题是否存在,但我记得在jsp页面的开头添加了下面的代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


您可以发布整个异常堆栈跟踪吗?
items=“${user}”var=“user”
哪个用户是什么。。替换为
var=“u”
并在
foreach
中使用
u
可能会有所帮助我知道这个答案来得很晚,但我相信
foreach
中的
user
变量实际上是一个集合。看看,你好!如果您可以使用代码标签格式化代码以提高可读性,那就太好了!谢谢