Передача объекта из вида в контроллер или контроллер в контроллер - PullRequest
2 голосов
/ 15 июня 2011

У меня есть вопрос о весеннем MVC.

Возможно ли передать объект из вида контроллеру или контроллер контроллеру?

У меня есть класс, называемый лицом (состоит из имени, возраста, адреса).

Я пробовал что-то подобное, но это не работает.

Во-первых, я передал объект из контроллера в вид, подобный этому

model.addAttribute("person",person);
return "table";

В файле table.jsp я сделал ссылку

< a href="validate.html?person=${person}" >validate< /a >

И на контроллере проверки я сделал что-то подобное

 @RequestMapping(value="/validate",method = RequestMethod.GET)
public String validate(@RequestParam("person")Person person, Model model){
    model.addAttribute("message",person.getName);
            return "validate";
}

Возможно ли это? Если это так, то как?

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Вы не можете сделать это таким образом.Если вы используете Spring 3.1.x, вам просто нужно сделать: validate

и затем в вашем контроллере вы получите:

public String validate(Person person) {
   return "validate";
}

Лучшим способом будет заполнение сеанса вместо модели.Сессия содержит сериализуемый объект:)

Здесь для получения дополнительной информации о новостях Spring MVC: http://blog.springsource.com/2011/06/13/spring-3-1-m2-spring-mvc-enhancements-2/

0 голосов
/ 15 июня 2011

Вы можете сделать это так, как хотите, используя Converter SPI .Вы реализуете интерфейс Converter, который из документации Spring в ссылке выглядит следующим образом:

package org.springframework.core.convert.converter;

public interface Converter<S, T> {
    T convert(S source);
}

от строки к персоне, а другой от персоны к строке.Таким образом, ваша реализация будет выглядеть примерно так:

public class PersonToStringConverter<Person, String> {
    String convert( Person person ) {
        // some code here that serializes your Person object 
        // into a String that you can later parse back into a person.
        return mySerializedPerson;
    }
}

, а затем - реализацией StringToPersonConverter, которая выполняет анализ, заполняет и возвращает объект Person.Затем следуйте инструкциям в документации Spring, чтобы сконфигурировать ваш конвертер для использования, и вы готовы к работе.

Учитывая ваше использование выше, вам потребуется url-кодирование сериализованного лица для использования в href вашего 'a'tag.

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