Spring MVC: ModelAttribute формы = больше POJOS? - PullRequest
2 голосов
/ 02 января 2012

Возьмите этот POJO в качестве домена.

public class Invoice {
    private String codeNumber;
    private BigDecimal amount;
    private String notes;

    private List<InvoiceRows> rows;      
}

У меня есть форма, которая принимает это как @ModelAttribute.Форма имеет четыре текстовых ввода: codeNumber, amount, notes и "emailAddressToNotify".Свойство строки POJO заполняется в другом месте, поэтому оно игнорируется, и это правильно.

С другой стороны, свойство "emailAddressToNotify" отправляется формой POST, но, очевидно, оно не связано сСчет POJO.На самом деле, он мне нужен в методе контроллера "processForm ()".

Можно ли просто добавить параметр @RequestParam, чтобы получить его?

И вот вторая частьвопрос, поскольку он связан с первым:

, в моем веб-приложении я часто буду писать «огромные» формы, в которых поля не всегда соответствуют полям одного из моих доменных объектов.Итак, я спрашиваю вас о том, что является лучшей практикой:

Должен ли я написать POJO, предназначенный для форм, чтобы я всегда мог использовать @ModelAttribute и проверять поля простым способом?или ...?

1 Ответ

0 голосов
/ 03 января 2012

Могу ли я просто добавить параметр @RequestParam, чтобы получить его?

Я думаю, вы спрашиваете, можете ли вы использовать привязку @RequestParam и POJO в одном методе контроллера. Да, это возможно Может, тебе стоило просто попробовать, а не спрашивать об этом?

Нужно ли мне писать «специализированный» POJO, чтобы я всегда мог использовать @ModelAttribute и проверять поля простым способом? или ...?

Это зависит ... Вам нужно привести пример того, что вы делаете, для полезного ответа. То есть хотите ли вы привязать несколько POJO к одной форме, не совпадают ли имена полей, есть ли у вас дополнительные поля в POJO, которые вы не хотите отображать, есть ли в POJO вложенные классы и т. д. ...

Весьма распространено иметь простой плоский боб / POJO для использования в качестве «поддерживающего форму боба». Их также часто называют DTO (объекты передачи данных). См. Что такое объект передачи данных? .

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