【问题标题】:HTTP Status 500 - An exception occurred processing JSP page /WEB-INF/views/addDepartment.jsp at line 21 [duplicate]HTTP状态500 - 在第21行处理JSP页面/WEB-INF/views/addDepartment.jsp时发生异常[重复]
【发布时间】:2016-07-16 13:48:42
【问题描述】:

我正在尝试从我的 spring mvc 应用程序的 addDepartment.jsp 页面中的数据库中删除一个部门。我尝试删除时确实收到此错误

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/addDepartment.jsp at line 21

18:                 </tr>
19:                 <tr>
20:                     <td><form:label path="departmentName">Department Name:</form:label></td>
21:                     <td><form:input path="departmentName" value="${department.departmentName}"/></td>
22:                 </tr>
23:                 
24:                 <tr>

这是 addDepartment.jsp 文件的第 21 行

21:                     <td><form:input path="departmentName" value="${department.departmentName}"/></td>

这是处理删除功能的视图控制器

@RequestMapping(value = "/deleteDepartment", method = RequestMethod.GET)
    public ModelAndView deleteCategory(@ModelAttribute("command")  Department department,
            BindingResult result) {
        departmentService.deleteDepartment(department.getDepartmentId());
        Map<String, Object> model = new HashMap<String, Object>();
        model.put("department",  departmentService.getDepartments());
        return new ModelAndView("addDepartment", model);
    }

这是错误的根本原因堆栈跟踪

java.lang.NumberFormatException: For input string: "departmentName"
    java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    java.lang.Integer.parseInt(Integer.java:580)
    java.lang.Integer.parseInt(Integer.java:615)

这是处理从 addDepartment.jsp 文件中删除的代码视图

<c:forEach items="${departments}" var="department">
            <tr>
                <td><c:out value="${department.departmentId}"/></td>
                <td><c:out value="${department.departmentName}"/></td>
                <td align="center"><a href="editDepartment?departmentId=${department.departmentId}">Edit</a> | <a href="deleteDepartment?departmentId=${department.departmentId}">Delete</a></td>
            </tr>
        </c:forEach>

为什么我无法删除部门名称?

【问题讨论】:

  • stackoverflow.com/questions/35413698/… 这未被提出问题的人接受为他的问题的答案,而且他的问题内容与我的明显不同
  • 我阅读了您在问题中提供的答案
  • 我的问题已经有了答案
  • 那么如果两个问题返回相同的异常会使另一个重复?
  • 从标记我的问题重复的答案中,该人正在尝试其他东西,我正在尝试从 jsp 文件中删除

标签: spring jsp spring-mvc el


【解决方案1】:

如果我错了,请纠正我,但异常与 deleteDepartment 代码无关,而是与 addDepartment.jsp 页面有关,那么您是如何将这两者联系在一起的?

在我看来,从 numberFormatException 来看,好像 java 正在尝试将 departmentName 值转换为整数。这当然没有意义,因为我想您将向该字段提供一个字符串。

我不完全确定问题出在您共享的代码中,但我感觉有些混淆了按部门 ID 或部门名称选择“部门”,以便将其删除。因此,会发生从字符串值到引发异常的数字值的转换。

【讨论】:

  • 另外我不确定标记的重复是否确实是同一个问题,因为在另一个问题中,这个人得到了一个 NumberFormatException 输入“id”应该是一个数字,而这里我们得到了一个 NumberFormatException对于不应该是整数的输入“departmentName”,因此异常是有意义的。
  • 这解决了我的问题,洞察出了什么问题。我输入了一个错误的变量
  • 它在哪里讲述了一个不同的故事。让我纠正一下自己
  • 也许我们应该从控制器定义开始
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 2014-09-11
  • 2013-08-26
相关资源
最近更新 更多