Я использую Spring MVC для веб-приложения и работаю с простой формой, которая занимается выбором клиентов и отображением контактной информации.
Одна из проблем, с которыми я сталкиваюсь, заключается в том, что если я выберу клиента в первый раз, он получит информацию, но во второй раз - нет.Он покажет информацию от предыдущего клиента.
Я посмотрел больше на то, что регистрировал, и заметил, что получаю ошибку привязки данных и вижу слишком знакомый вывод на моей консоли, как показано ниже.
Failed to convert property value of type [java.lang.String[]] to required type
[java.lang.Integer] for property 'clientId'; nested exception is
java.lang.NumberFormatException: For input string: "3349,4182"
Если вы видите в выводе ошибки, он показывает
...for string: "3349,4182"
Для справки: 3349 - это идентификатор клиента первого выбранного клиента, когда форма размещена, 4182 - этоидентификатор клиента второго.
Я провел некоторое исследование и столкнулся с людьми, которые сказали, что он что-то делает с обработкой двух чисел как массива [3349,4182], а не просто взятиеновый ClientID.
Спасибо,
Редактировать Объект поддержки выглядит следующим образом
public class ClientContactModel implements Serializable {
private String searchText;
private Integer clientId;
public ClientContactModel() {
}
public String getSearchText() {
return searchText;
}
public void setSearchText(String searchText) {
this.searchText = searchText;
}
public Integer getClientId() {
return clientId;
}
public void setClientId(Integer clientId) {
this.clientId = clientId;
}
}
Вызов, который являетсяВыдает NumberFormatException
clientId = Integer.valueOf(request.getParameter("clientId"));
Чтобы ответить на ваш первый вопрос, да, я использую SimpleformController
Вот код пользовательского интерфейса, относящийся к клиенту,
<pre><code><tr>
<td align="center">
<form:select path="clientId">
<form:option value="">Select a client...</form:option>
<form:options items="${clientUsers}" itemValue="id" itemLabel="username" />
</form:select>
<input type="button" name="selectButton" id="selectButton" value="Go" onclick="selectContact();">
</td>
</tr>
<tr>
<td align="center">
Display clients who have not updated their contact information since
<input name="month" type="text" id="textfield2" value="MM" size="4">
<input name="day" type="text" id="textfield3" value="DD" size="4">
<input name="year" type="text" id="textfield4" value="YY" size="4">
<input type="submit" name="notUpdatedButton" id="notUpdatedButton" value="Go">
</td>
</tr>
С ним тоже есть маленький JS
function selectContact() {
document.getElementById("searchText").value = "";
document.getElementById("clientContactObj").submit();
}