Сообщения о проверке загрузки Java Spring не работают

#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. Обучающие видео выглядят так просто 🙂