2012-01-02 4 views
2

Возьмите это POJO как домен.Spring MVC: ModelAttribute forms = more POJOS?

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

    private List<InvoiceRows> rows;  
} 

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

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

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

А вот вторая часть вопроса, так как это связано с первым:

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

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

ответ

0

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

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

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

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

Его довольно обычная, чтобы иметь простой, плоский боб/POJO для использования в качестве «бэк-бэк-бэнда». Их часто также называют DTO (объекты передачи данных). См. What is Data Transfer Object?.

Смежные вопросы