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.length > 0 &&
  category[0] != null &&
  category[0].trim().length() > 0)
    content.addCategory(contentDao.findCategory(Integer.parseInt(category[0])));
}
于 2012-04-06T12:51:49.710 に答える
0

カテゴリの空の要素が1つ返されます。ifステートメントでは、次のことも確認する必要があります。category[0] != null && !"".equals(category[0].trim())

于 2012-04-06T12:47:55.477 に答える