java.lang.NumberFormatException: For input string: "- id"
Bin ich mit SPRING MVC, ein Projekt zu entwickeln, um eine Liste der Benutzer anzuzeigen, die in einer JSP-Datei. Mein Controller-Datei:
Map<String, Object> model = new HashMap<String, Object>();
model.put("user", userService.getUser()); //userService.getUser() returns a List
Die JSP-Datei:
<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>
Beim anzeigen der obigen JSP-Datei, java.lang.NumberFormatException: For input string: "- id" angezeigt wird. Kann jemand bitte helfen,, um herauszufinden, die Lösung?
Danke Ihnen sehr.
könnte Sie posten die ganze Ausnahme-stack-trace?
Ich weiß, diese Antwort kommt ziemlich spät, aber ich glaube, dass Ihr
items="${user}" var="user"
welcher Benutzer was.. Ersetzen durch var="u"
und mit u
im foreach
helfen könnteIch weiß, diese Antwort kommt ziemlich spät, aber ich glaube, dass Ihr
user
variable innerhalb der foreach
ist tatsächlich eine Sammlung. Prüfen, dass aus.
InformationsquelleAutor user3109487 | 2014-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
NumberFormatException
passiert bei einem gescheiterten Versuch, um zu konvertieren eine Zeichenfolge in eine Zahl. Überprüfen Sie, ob Ihre Eingabe-Daten das sollte eine Zahl ist tatsächlich empfangen etwas anderes (z.B. eine leere Zeichenfolge und kann nicht in eine Zahl umgewandelt werden, ist eine mögliche Ursache).InformationsquelleAutor helderdarocha
Erste gute Regel: Variablen, die Listen, die Sie sollte die Benennung plural, beispielsweise, eine Liste von Benutzern mit dem Namen "Benutzer":
Nun, Sie wissen, was Variablen enthalten, "Benutzer" Liste der Benutzer aber "user" ist ein Element der Benutzer-Liste.
Zweite Regel: wenn Sie möchten überprüfen, ob eine variable eine Zahl ist, fangen keine Ausnahmen, es ist langsam. Besser und schneller ist regex:
InformationsquelleAutor Damian S.
Neben heldrarocha und Damien die Antworten, ich denke dein problem ist, dass Sie nicht Einchecken-ID, bevor Sie es in der Benutzer-Objekt.
Sicherzustellen, dass die id-variable in der User ist ein integer (oder long oder was auch immer). Auf diese Weise, wenn Sie füllen es aus der DB, Ihre rowmapper fügen Sie numerische Werte.
Wenn es ein String sein, sicherzustellen, dass was auch immer geht ist numerisch.
Eine einfache Möglichkeit zu überprüfen, ob ein String numerisch ist, ist der Benutzer von Apache Commons StringUtils isNumeric Methode:
http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html#isNumeric(java.lang.String)
InformationsquelleAutor Somaiah Kumbera