Как мне настроить проверку валидации в Spring MVC с JSP? - PullRequest
1 голос
/ 20 марта 2019

Мне нужна быстрая помощь относительно проверки валидации в Spring MVC.У меня есть базовая форма HTML , а не форма тега JSTL.Как проверить или реализовать прямую проверку данных в Spring MVC?Я думаю, что сейчас я могу использовать regex, чтобы убедиться, что имя пользователя буквенно-цифровое [a-zA-Z0-9].

Но я видел, как люди используют Validator для этой работы.Я хочу использовать Validator, поскольку мне кажется, что у него больше профессий.

Второй вопрос,

Я пытаюсь, чтобы обработка исключений работала правильно, но она не работает.Я хочу, чтобы произошел абсолютный базовый ответ, the response throws a HTTP.404 ответ.Мой простой метод:

 @RequestMapping(value="/request/view/{id}",method=RequestMethod.GET)
    public String requestSubmit(Model model)

Теперь с моей строкой ответа, как я могу это сделать?После поиска по Stackoverflow.Они сказали создать общий класс, такой как NotFoundException, и расширить его RunTimeException.Но я до сих пор не знаю, как преднамеренно установить ответ 404 или любой другой ответ, даже Http.BANDWIDTH_EXCEEEDED_RESPONSE

1 Ответ

1 голос
/ 20 марта 2019

Первое, что вы должны знать: лучше использовать POST вместо GET при отправке формы.Потому что, когда вы используете GET, все ваши model свойства отправляются в качестве параметра url, и это не очень хорошая практика.

Для использования проверки вы можете использовать @Valid как это:

public String requestSubmit(@Valid Model model)

Затем вы можете использовать аннотацию валидации, например @NotNull, @Size, ..., для каждого свойства Model класса, который вы хотите проверить.

Когда пользователь отправляет вашу форму, если у каждого атрибута формы есть проблема с проверкой, пружина автоматически выбрасывает MethodArgumentNotValidException.Для получения ошибок проверки вы можете использовать блок try-catch в вашем контроллере или лучше использовать центральный обработчик исключений с @ControllerAdvice.

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