Использование тега Spring Form для редактирования функций - PullRequest
1 голос
/ 22 марта 2012

В моем веб-приложении. У меня есть доменный объект (bean), который я сопоставил с одной из моих таблиц через hibernate, я использовал ту же ссылку на объект домена для тега пружинной формы в моем «addcustomer.jsp», который используется для добавления клиентов, таким образом, всякий раз, когда клиент добавлен весенний тег формы заполнить мой объект домена, и я могу сохранить это в моей базе данных. Однако, когда я использую ту же технику в моем "editcustomer.jsp", объект домена, который я получаю в моем контроллере, сбрасывает всю информацию о полях и только дает мне ту информацию, которая была изменена / отредактирована. Следовательно, я не могу слепо сохранить весь этот объект домена в моей базе данных, поскольку у него нет остальной информации.

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

Если это реальная проблема, то вот два возможных решения, к которым я могу прийти 1. вместо слепого сохранения объекта домена в db, запросите базу данных, чтобы получить существующую запись и выполнить слияние / замену. Этот подход приводит к дополнительному вызову базы данных, прежде чем вы сохраните данные, которые вы уже сделали, перед тем как приступить к редактированию клиента. JSP 2. Сохраните копию объекта домена по запросу в конце jsp, верните ту же копию вместе с созданным компонентом пружинной формы и выполните слияние на конце контроллера. - Вероятно, не очень хорошая идея

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

Спасибо Винод

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Вам нужно будет загрузить объект customer в модель, прежде чем вы отредактируете файл editcustomer.jsp.тогда вы можете использовать форму следующим образом:

<form:form commandName="customer">
    <form:hidden path="id" />
    ...
    First Name:<form:input path="firstName" />
    Last Name:<form:input path="lastName" />
    <input type="submit" value="Save Changes" />
</form:form>

Добавьте значения, которые вы не хотите, чтобы пользователь мог редактировать, как скрытые поля в форме.Таким образом, когда контроллер привязывает форму к вашему объекту, он будет иметь всю необходимую информацию.

0 голосов
/ 29 марта 2012

вы можете сначала проверить, что вы связали значения с полем формы пружины, используя атрибут path, потому что, если вы правильно связали переменные класса pojo с тегами формы, используя атрибут пути, тогда в пружине отправки формы используйте связыватель веб-данных для установите значения полей в переменные pojo, используя метод установки переменных. Для лучшего понимания кода обратитесь к ответу @Vasileios Liolios.

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