org.apache.jasper.JasperException: при обработке [WEB-INF / views / person.jsp] в строке [24] произошло исключение. - PullRequest
0 голосов
/ 03 ноября 2019

Попытка запустить код из https://www.journaldev.com/3531/spring-mvc-hibernate-mysql-integration-crud-example-tutorial. Добавить функциональность и список работ. Но обновление данных вызывает ошибку JSP. ниже приведен журнал ошибок org.apache.jasper.JasperException: возникла исключительная ситуация при обработке [WEB-INF / views / person.jsp] в строке [24]

        22: <form:form action="${addAction}" commandName="person">
        23: <table>
        24:     <c:if test="${!empty person.name}">
        25:     <tr>
        26:         <td>
        27:             <form:label path="id">


    Root Cause
        java.lang.NumberFormatException: For input string: "name"
        java.lang.NumberFormatException.forInputString(Unknown Source)
        java.lang.Integer.parseInt(Unknown Source)

Я не слишком разбираюсь в JSP.so не может указать точную точку, перепробовал множество решений и, кажется, передает входные данные имени поля.

Моя таблица SQL называется Person и имеет следующий вид

id      int(11)     PRIMARY Key auto_increment
name    varchar(20)             
country varchar(20)     

Ниже приведен мой полный код JSP для моей формы.

<form:form action="${addAction}" commandName="person">
<table>
<c:if test="${!empty person.name}">
<tr>
    <td>
        <form:label path="id">
            <spring:message text="ID"/>
        </form:label>
    </td>
    <td>
        <form:input path="id" readonly="true" size="8"  disabled="true" />
        <form:hidden path="id" />
    </td> 
</tr>
</c:if>
<tr>
    <td>
        <form:label path="name">
            <spring:message text="Name"/>
        </form:label>
    </td>
    <td>
        <form:input path="name" />
    </td> 
</tr>
<tr>
    <td>
        <form:label path="country">
            <spring:message text="Country"/>
        </form:label>
    </td>
    <td>
        <form:input path="country" />
    </td>
</tr>
<tr>
    <td colspan="2">
        <c:if test="${!empty person.name}">
            <input type="submit"
                value="<spring:message text="Edit Person"/>" />
        </c:if>
        <c:if test="${empty person.name}">
            <input type="submit"
                value="<spring:message text="Add Person"/>" />
        </c:if>
    </td>
</tr>


1 Ответ

1 голос
/ 03 ноября 2019

Похоже, что вы отправляете Object[] вместо вашего Person объекта.

Подробнее здесь Получение NumberFormatException при получении значения в JSP с использованием JSTL

Чтобы исправить это, перед добавлением атрибута в запрос убедитесь, что вы передаете правильный тип объекта (Person)

final TypedQuery<Person> query = entityManager.createQuery("SELECT person.name from Person person", Person.class);
final List<Person> resultList = query.getResultList();
Person person = resultList.get(0);

map.addAttribute("person", person);

, если это не помогает, опубликуйте свой код бэкэнда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...