1

我在这里不断收到此错误:

SEVERE: java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
at com.myapp.cmt.web.ContentController.saveContent(ContentController.java:129)

categories我的页面上的下拉菜单中没有选择任何选项时,就会发生这种情况。我正在检查长度,为什么它还在尝试处理parseInt()

        String[] category = request.getParameterValues("categories");
        if (category.length > 0) {
            content.addCategory(contentDao.findCategory(Integer.parseInt(category[0])));
        }

我的 HTML

    <strong>Category</strong><br/>
    <select name="categories">
        <option></option>
    <c:forEach items="${categories}" var="category">
        <option value="${category.id}" <c:if test="${content.hasCategory(category)}"> CHECKED</c:if>>${category.name}</option>
    </c:forEach>
    </select>
4

2 回答 2

0

返回类别的单个空元素。在您的 if 语句中,您还应该检查category[0] != null && !"".equals(category[0].trim())

于 2012-04-06T12:47:55.477 回答
0

数组的长度只是故事的一半……您还必须检查数组中的内容。试试这样的代码:

if (category.length > 0 &&
  category[0] != null &&
  category[0].trim().length() > 0)
    content.addCategory(contentDao.findCategory(Integer.parseInt(category[0])));
}
于 2012-04-06T12:51:49.710 回答