Spring MVC и "большие формы" - PullRequest
       14

Spring MVC и "большие формы"

0 голосов
/ 15 ноября 2011

Это действительно простой вопрос.

Я хотел бы знать, как лучше всего отправлять огромную HTML-форму в Spring MVC @Controller (огромное = более 20 полей / сложных полей в виде списка и т. Д.)

Я немного растерялся, потому что кто-то использует этот подход (из официальных примеров):

@RequestMapping( value = "/users" , method = RequestMethod.POST )
    public ModelAndView saveUser(Locale locale, @Valid User user, BindingResult result) {

        if (result.hasErrors()) {

            logger.error("Errori form:: " + result.getErrorCount());

        } else {

            logger.info("Utente salvato");
            userService.saveUser(user);

        }
        ...
        return mav;
    }

и некоторые другие используют более сложный SimpleFormController следующим образом: Spring-MVC формы по GAE

Я, конечно, предпочитаю первый способ, но я боюсь, что мне придется создать много «FormBeans», бесполезных DTO.

Можете ли вы объяснить мне различия и дать мне советы?

Спасибо.

1 Ответ

1 голос
/ 15 ноября 2011

Этот пример, который вы намеревались сделать, использует Spring-валидацию.Я думаю, что вы должны взглянуть на руководство по Spring или некоторую помощь, поскольку оно очень простое, но общая идея заключается в том, что Spring проверяет форму для вас.Класс со всеми входными данными из формы, с геттерами и сеттерами).

Затем вы должны использовать пружинные формы, которые немного отличаются от нормальных форм.Основная идея заключается в том, что вы сопоставляете объект (пользователь в вашем случае) с формой.И затем каждый из входов сопоставляется с полем Pojo.

После этого вы добавляете проверку в Pojo с аннотациями.

@Size(max = 10)
private String name;

Например,Размер примечания указывает, что имя поля должно быть не более 10 символов.Эти проверки проверяются с помощью аннотации @ Valid.

Затем, когда вызывается hasErrors, вы можете получить, если в форме есть ошибки.

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