Редактирование свойств объекта с помощью Spring Forms - PullRequest
0 голосов
/ 16 мая 2011

Я немного озадачен тем, как можно редактировать объект с помощью Spring Forms, например: предположим, у меня есть объект Person , у которого много атрибутов, потому что я получаю его от дао, Я только хочу предоставить поле "улица" для редактирования, оно должно быть в моем PeopleController :

@RequestMapping("editPerson")
public void editPerson (Model model) {
    Person person = dao.getThatPerson ();
    model.addAttribute (person);
}

И в моем файле просмотра У меня не было бы ничего, кроме этого:

<form:form method="post" action="" commandName="person">
    <form:input path="street" />
    <input type="submit" value="Edit!" />
</form:form>

Итак, когда я отправлю форму, будут ли сохранены другие атрибуты объекта Person ? Например, имя, фамилия, имя пользователя, возраст и т. Д. В противном случае, как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

Сохраните объект модели в сеансе, например:

@Controller
@SessionAttributes("person")
public class YourController {
...
  @ModelAttribute("person")
  public Person getPerson() {
      return new Person();
  }

  @RequestMapping("editPerson")
  public void editPerson (@ModelAttribute("person") Person person) {
    person = dao.getThatPerson ();
  }

  @RequestMapping(value="postperson", method = RequestMethod.POST)
  public void postPerson(@ModelAttribute("person") Person person) {
    // do stuff with person
  }
}
0 голосов
/ 16 мая 2011

Вероятно, вам лучше всего указать в модели личность и улицу, а не человека.Когда пользователь отправляет, просто обновите улицу одним из следующих способов:

1 - Предоставление метода updateStreet(String street, int personID) в вашем DAO.
2 - Получение человека из DAO, установка улицы и сохранение нового человека.

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