Spring MVC загружает файл и отправляет проанализированные данные обратно - PullRequest
0 голосов
/ 04 декабря 2011

Я использую Spring MVC для своего веб-приложения.Я реализую функцию загрузки файлов.Следуя инструкции, я смог отправить загруженный файл на сервер с помощью действия отправки типа ввода «файл».Затем я проанализировал загруженный файл xls на стороне сервера, и мне нужно отправить проанализированные данные (3 списка пользовательских объектов) обратно в ту же форму для отображения.Я отправил данные обратно через ModelAttribute.

Однако теперь моя проблема заключается в том, что на стороне клиента мне нужно использовать эти списки пользовательских объектов в моем javascript, но я могу получить только каждое поле пользовательских объектовчерез библиотеку тегов jstl, но я не могу получить эти пользовательские объекты в своем javascript, где они мне нужны для другой реализации логики.

Затем я попробовал подключаемый модуль загрузки Ajax-файла, потому что вызов ajax может вернуть JSON-ответ, который объекты могутиспользоваться в Javascript.Но не могу заставить плагин работать должным образом.

Я застрял в этой проблеме в течение нескольких дней>. <Кто-нибудь может помочь в этом?Либо решение по использованию ModelAttribute в Javascript, либо решение по вызову Ajax в порядке.Большое спасибо !!! </p>

1 Ответ

0 голосов
/ 04 декабря 2011

Есть ли причина, по которой вы не можете просто "сплющить" объекты вашей модели в HTML, а затем получить к ним доступ из Javascript с помощью DOM API?

Вы сказали, что возвращаете 3 списка пользовательских объектов. Итак, как насчет каждого списка, вы создаете (скрытую) таблицу HTML, например, если у вас есть список Person объектов в ModelAttribute с именем people:

<table id="people-table">
  <c:forEach var="person" items="${people}">
    <tr id="${person.id}>
      <td class="person-name">${person.name}</td>
      <td class="person-age">${person.age}</td>
      <td class="person-height">${person.height}</td>
    </tr>
  </c:forEach>
</table>

Теперь в вашем Javascript вы перебираете строки в people-table, делая все, что вам нужно - например, используя jQuery :

$("#people-table tr").each(
    var personId = $(this).attr("id");
    var personName = $(this).find("td.person-name").text();
    // etc, etc
    // Do something with these as required
);

Возможно, это не самое элегантное решение, но, по крайней мере, его легко отладить - вы всегда можете просто проверить table с помощью Firebug и т. Д., Чтобы убедиться, что данные верны, и оттуда вы узнаете, продолжать ли отладку на стороне сервера или в Javascript.

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