<c:forEach var="cid" items="${clist}"> <option value="${cid.id}" ${cid.id==String.valueOf(blist.categoryId)?"seleced":""}>${cId.categoryName}</option> </c:forEach>出现java.lang.NumberFormatException: For input string: "categoryId"
时间: 2023-07-06 15:28:04 浏览: 90
这个错误依旧是因为 `blist.categoryId` 的值是一个字符串类型的 "categoryId",并不是一个数字类型。
你可以在代码中加入一个判断,判断 `blist.categoryId` 是否是一个数字类型的字符串。如果不是数字类型的字符串,可以将其默认值设置为0或者其他你认为合适的值。
以下是一个可能的解决方案:
```
<c:forEach var="cid" items="${clist}">
<option value="${cid.id}" ${cid.id==(blist.categoryId!=null&&blist.categoryId.matches("\\d+"))?Integer.parseInt(blist.categoryId):0?"selected":""}>${cId.categoryName}</option>
</c:forEach>
```
这里使用了正则表达式 `\\d+` 来判断 `blist.categoryId` 是否是一个数字类型的字符串。如果是数字类型的字符串,就将其转换为数字类型进行比较;如果不是数字类型的字符串,就将其默认值设置为0。这样就可以避免出现类型不匹配的问题。
相关问题
<tr> <td> 附件: <c:forEach var="fileName" items="${fileName}" varStatus="status"> <c:out value="${fileName}" /> <c:if test="${!status.last}">、</c:if> </c:forEach> </td> </tr>如果值为空就把这个tr标签隐藏
你的问题是如何判断值为空并隐藏这个tr标签。可以通过以下代码实现:
```
<c:if test="${empty fileName}">
<tr style="display:none;">
<td>附件:</td>
</tr>
</c:if>
<c:if test="${not empty fileName}">
<tr>
<td>附件:
<c:forEach var="fileName" items="${fileName}" varStatus="status">
<c:out value="${fileName}" />
<c:if test="${not status.last}">、</c:if>
</c:forEach>
</td>
</tr>
</c:if>
```
这样,如果值为空,就会隐藏这个tr标签。
<select name="categoryId"> <c:forEach var="cid" items="${clist}"> <option value="${cid.id}" ${cid.id==(blist.categoryId!=null&&blist.categoryId.matches("\\d+"))?Integer.parseInt(blist.categoryId):0?"selected":""}>${cId.categoryName}</option> </c:forEach> </select>出现java.lang.NumberFormatException: For input string: "categoryId"
这个错误可能是因为在表单提交时,`categoryId` 的值被设置为了字符串类型的 "categoryId"。
为了解决这个问题,你可以在后台代码中对 `categoryId` 进行验证,确保其是一个数字类型的字符串。如果不是数字类型的字符串,可以将其默认值设置为0或者其他你认为合适的值。
以下是一个可能的解决方案:
```
String categoryIdStr = request.getParameter("categoryId");
int categoryId = 0; // 默认值为0
if (categoryIdStr != null && categoryIdStr.matches("\\d+")) {
categoryId = Integer.parseInt(categoryIdStr);
}
// 将 categoryId 传递给后续的代码进行处理
```
这里使用了正则表达式 `\\d+` 来判断 `categoryIdStr` 是否是一个数字类型的字符串。如果是数字类型的字符串,就将其转换为数字类型进行处理;如果不是数字类型的字符串,就将其默认值设置为0。这样就可以避免出现类型不匹配的问题。
阅读全文