javax.validation.UnexpectedTypeException: HV000030: не найден валидатор для ограничения 'javax.validation.constraints.NotEmpty' - PullRequest
0 голосов
/ 06 февраля 2019

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

Моя сущность:

@Table(name = "library")
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idLibrary")
private int id;
@Column(name = "valute")
private String valute;
@Column(name = "fileid")
private String fileId;
@Size(min = 3,message = "Замалий розмір")
@javax.validation.constraints.NotEmpty(message = "Не може бути пустим!")
@Column(name = "bookName")
private String name;
@javax.validation.constraints.NotEmpty(message = "Не може бути пустим!")
@Column(name = "Author")
private String aut;
@Column(name = "Descriptions")
private String desc;
@javax.validation.constraints.NotEmpty(message = "Не може бути пустим!")
@Column(name = "Year")
private String year;

Помимо этой сущности у меня есть еще одна, которая работает должным образом, форма jsp

       <form:form method="post" action="books?new" modelAttribute="book" acceptCharset="utf-8"  enctype="multipart/form-data"  >
    <table>
        <tr>
            <td><form:label path="name">Назва</form:label></td>
            <td><form:input path="name" /> <sf:errors path="name" cssClass="isa_error"/></td>
        </tr>
        <tr>
            <td><form:label path="desc">Опис</form:label></td>
            <td><textarea cols="60" rows="10" name="desc">Опис</textarea> <sf:errors path="desc" cssClass="isa_error"/></td>
        </tr>
        <tr>
            <td><form:label path="aut">Автор</form:label></td>
            <td><form:input path="aut"/> <sf:errors path="aut" cssClass="isa_error"/></td>

        </tr>
        <tr>
            <td><form:label path="year">Рік</form:label></td>
            <td><form:input path="year"/><sf:errors path="year" cssClass="isa_error"/></td>
        </tr>
        <tr>
            <td><form:label path="price">Ціна</form:label> </td>
            <td><form:input path="price" /> <sf:errors path="price" cssClass="isa_error"/> <select name="valute">
                <option value="UAN" selected>UAN</option>
                <option value="USD">USD</option>
                <option value="EURO">EUR</option>
            </select></td>
        </tr>
        <tr>
            <td>Зображення</td>
            <td><input name="photo" type="file" ></td>
            <td><p><form:errors cssClass="isa_error" delimiter="" /></p></td>
        </tr>
        <tr>
            <td><input  type="submit" value="Додати" onclick="this.disabled=true;this.value='Виконується!';this.form.submit();"></td>
        </tr>

    </table>

</form:form>

И класс контроллера:

      @PostMapping( value = "/books")
public String add(@ModelAttribute("book") @Valid Book book, @RequestParam(value = "photo", required = false) MultipartFile photo, @RequestParam(value = "valute",required = false) String valute,BindingResult result) {
    if (result.hasErrors()) {
        Logger.getAnonymousLogger().info("BINDING DOESN'T WORK !!!!!");
        return "addBook";}


    if (!photo.isEmpty()) {
        try {
            validateImg(photo);
        } catch (IOException ex) {
            result.reject("uk_UA", "Поганий тип");
            return "addBook";
        }
    }
    StringBuilder builder = new StringBuilder();
    builder.append(service.download(photo));
    Logger.getAnonymousLogger().info("SOMETHING HAS BROKEN IN LOGGING FILE");
    System.out.println("INSIDE ADD METHOD ");
    book.setFileId(builder.toString());
    service.add(book);

    return "redirect:/books";
}

Я пытался заменить hibernate-validator на новейшую версию в файле pom.xml, но в этом состоянии мое приложение даже не запускается, также я заменил javax.validation альтернативой hibernate, в этом состоянии яполучить еще один ошибку, но в любом случае моя проверка формы не работает, но, как я уже сказал, у меня есть другая сущность и форма, которая работает правильно, я конкурировал с ними и не заметил никакой разницы, буду благодарен залюбая помощь.

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