#java #spring-boot
Вопрос:
Я пытаюсь освоить Spring Boot.
Control Object partial code: import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; public class WatchlistItem { @NotBlank(message="Please enter the title") private String Title; private String Rating; private String Priority; @Size(max=50, message="Comment should be maximum of 50 characters") private String Comment; private Integer ID;
Частичный код контроллера:
@PostMapping("/watchlistItemForm") public ModelAndView getWatchlistItem(@Valid WatchlistItem watchlistItem, BindingResult bindingResult) { if(bindingResult.hasErrors()) { return new ModelAndView("watchlistItemForm"); } WatchlistItem exisiting = findWatchlistItem(watchlistItem.getID()); if (exisiting == null) { watchlistItem.setID(index ); watchlistItems.add(watchlistItem); }else { //if it is existing then it changes the attributes. } RedirectView view = new RedirectView(); view.setUrl("/watchlist"); return new ModelAndView(view);
Частичный Код Html:
lt;div class = "col-sm-4"gt; lt;input th:field="*{title}" type = "text" class = "form-control" placeholder = "Mandatory"gt; lt;/divgt; lt;div class="col-sm-4"gt; lt;span class="text-danger" th:errors="*{title}"gt; lt;/spangt; lt;/divgt; lt;/divgt;
Форма работает нормально, форма не принимает неполную информацию. Но сообщения об ошибках не отображаются. Пожалуйста, посоветуйтесь.
Комментарии:
1. Покажите свой код в контроллере. Вы должны передать ошибки с контроллера на просмотр.
2. Добавьте полный код метода в контроллер
3. Добавлен метод в cotroller.
Ответ №1:
Если вы не используете пользовательское сообщение проверки, попробуйте поместить его в файл application.properties.
server.error.include-message=always server.error.include-binding-errors=always
Или, если вы хотите добавить свое пользовательское сообщение для проверки, добавьте настройки для сообщения и средства проверки.
@Configuration public class MessageConfig { private static final String MESSAGE_SOURCE_PATH = "classpath:/message"; @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename(MESSAGE_SOURCE_PATH); messageSource.setDefaultEncoding("UTF-8"); return messageSource; } }
@Configuration public class ValidationConfig { private final MessageSource validationMessageSource; @Bean public LocalValidatorFactoryBean getValidator() { LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean(); bean.setValidationMessageSource(validationMessageSource); return bean; } }
Затем добавьте нужные сообщения в путь к сообщению. сообщение.свойства (в resources
папке)
validation.title.empty= Please enter the title
- Использование пользовательских сообщений проверки
@NotBlank(message="{validation.title.empty}") private String Title;
Это базовая настройка для пользовательской проверки. Надеюсь, вы решите свою проблему.
Комментарии:
1. Обучающие видео выглядят так просто 🙂