java.lang.NumberFormatException - ошибки привязки данных - PullRequest
1 голос
/ 29 июня 2010

Я использую 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();
  }

1 Ответ

2 голосов
/ 02 июля 2010

Можно ли выбрать несколько клиентов в списке?

Если да, вам нужно управлять несколькими идентификаторами на сервере (список, разделенный запятыми).

Если нет, используйте несколько = false ввыбор, чтобы запретить выбор нескольких записей.

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