Почему метод, аннотированный @ModelAttribute, не может подобрать атрибуты модели, добавленные через представление - PullRequest
0 голосов
/ 20 октября 2018

Почему метод model.asMap() in, помеченный @ModelAttribute (т. Е. AM1 здесь), не вернул никаких данных модели, но в @RequestMapping (т. Е. HM1 здесь) он не возвращает.

Просмотр:

<form:form action="SignupValidate.htm" modelAttribute="ma_CustomerTO">
CustName:<form:input path="CustName" />
CustSpouse:<form:input path="CustSpouse" />

Я отправил форму со значениями полей CustName = abc CustSpouse = xyz

Контроллер:

@Controller
@RequestMapping("/Customer")
public class CustomerController {
      //-------------------------------------//
      @ModelAttribute("ma_CustomerTO")
      public CustomerTO AM1(Model model) {
          logger.debug(model.asMap());   //-----> does not print the model attributes from view???
          CustomerTO customer=new CustomerTO(); 
          customer.setCustName("Sheldon");
          customer.setCustSpouse("Amy");
          logger.debug(model.asMap());
        return customer;
      }
      //-------------------------------------//
      @RequestMapping("/SignupValidate.htm")
      public ModelAndView HM1(Model model,@ModelAttribute("ma_CustomerTO") CustomerTO customer){
          logger.debug(model.asMap());//-----> but this one prints
      }
}

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Каждый метод с аннотацией @ModelAttribute будет вызываться до получения запроса от клиента, чтобы инициализировать модель для вашего представления.Это использование метода с выравниванием @ModelAttribute.

Модель в вашем методе @ModelAttribute не знает о ma_CustomerTO, потому что она вызывается перед обработкой SignupValidate.htm метода

0 голосов
/ 20 октября 2018

Я думаю, возможно, это должно происходить.Метод @ModelAttribute on не будет создавать атрибут для модели до конца метода.

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