Как связать данные таблицы HTML с объектом Java в контроллере Spring? - PullRequest
1 голос
/ 19 мая 2010

У меня есть весеннее MVC-приложение, использующее JSP в качестве технологий просмотра с Jquery для AJAX. У меня есть таблица, такая как:

<table>
  <tr>
    <td>name1</td>
    <td>value1</td>
    <td>setting1</td>
  </tr>
  <tr>
    <td>name2</td>
    <td>value2</td>
    <td>setting2</td>
  </tr>
</table>

Мне нужно сериализовать эту таблицу, чтобы впоследствии она могла быть связана с объектом в моем контроллере. Однако метод jquery serialize () работает только с полями формы. Как лучше всего передать данные таблицы в HTTP-запрос, чтобы впоследствии я мог связать их с объектом Java?

EDIT:

У меня есть объект Java, у которого есть коллекция, поэтому

class MyOject {
   private List<AnotherObject> items = new ArrayList<AnotherObject>();

   // standard getters and setters
}

class AnotherObject {
   private name;
   private value;
   private setting;

   // getters and setters
}

На экране пользователь создает новые предметы на лету. Когда пользователь готов, он отправляет форму, а затем мне нужно обработать все элементы в списке и создать новую коллекцию с этими элементами.

В целях отображения я создаю новую строку таблицы при создании элемента.

Ответы [ 3 ]

1 голос
/ 19 мая 2010

Тег <Form> - это то, как вы говорите браузеру: «Поместите этот материал в веб-запрос». Вот как вы получаете привязку объекта в Spring. По какой причине вы не используете форму? Вам не обязательно помещать это в форму на странице, вы можете указать идентификаторы элементов таблицы и извлечь их содержимое в javascript, если вам действительно нужно.

Редактировать: я думаю, что, возможно, трудно ответить, потому что неясно, почему вы хотите, чтобы браузер возвращал вам то, что вы ему дали. Может быть, вам действительно нужна аннотация @SessionAttributes() на вашем контроллере, чтобы вы могли сохранить состояние исходной страницы, отображаемой пользователю?

Подробнее Редактировать:

кк, смотри сейчас. Если вам нужна привязка веб-данных Spring, тогда создайте форму параллельно, добавляя больше строк таблицы. например.,

<form id="myObject" action="whateverYouNeedHere.htm" method="post">
<input type="hidden" id="items[0].name" name="items[0].name" value="foo"/>
<input type="hidden" id="items[0].value" name="items[0].value" value="bar"/>
<input type="hidden" id="items[0].setting" name="items[0].setting" value="buzz"/>
<input type="hidden" id="items[1].name" name="items[1].name" value="foo"/>
<input type="hidden" id="items[1].value" name="items[1].value" value="bar"/>
....

Тогда просто отправьте это, и оно будет правильно для вас. Если вы действительно хотели обрабатывать контент самостоятельно, то, вероятно, вы могли бы использовать XHR, как кто-то еще упомянул.

1 голос
/ 19 мая 2010

Используйте API связывания и проверки данных Spring , чтобы связать его с Java-объектом вашего собственного дизайна. Эта документация является веб-независимой; посмотрите в следующей главе, чтобы увидеть, как веб-уровень использует его.

Полагаю, вам понадобится абстракция за столом.

0 голосов
/ 19 мая 2010

для того, чтобы вставить информацию о вашей таблице в объект java, вам сначала нужно отправить ее на сервер .. для этого вам нужно будет либо отправить ее через XHR, либо в форме.

чтобы сериализовать объект, вам нужно написать javascript / jquery. я мог бы написать это для вас, но ваши требования несколько неопределенны, когда речь заходит о том, как будет выглядеть ваша таблица, и я не хочу догадываться о том, как выглядит объект Java, к которому вы хотите добавить свои данные.

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