Метод поиска в CRUD приложении (Spring + Hibernate + Maven)

266
07 февраля 2018, 12:59

Всем привет! Я новичок в работе с фрейворками, делаю входное задание в рамках обучалки - необходимо сделать CRUD с возможность поиска по базе. Взял за основу этот гайд https://www.youtube.com/watch?v=e7swABdqOS4 Все работает, однако, не могу никак победить метод поиска по базе.

Код для поиска книги по названию в репозитории следующий:

 @Override
 @SuppressWarnings("unchecked")
 public Book getBookbyTitle(String title) {
 Session session = this.sessionFactory.getCurrentSession();
 Criteria c=session.createCriteria(Book.class);
 List ls=c.list();
 Iterator<Book> itr= ls.iterator();
 while(itr.hasNext())
 {
    Book book = itr.next();
  String b= book.getBookTitle();
    if(title.equals(b))
    {
        return book;
    }
}
return null;
}

Код в контроллере следующий:

@RequestMapping(value = "/books/find{title}", method = 
RequestMethod.POST)
public String findBook(@PathVariable("title") String title, Model 
model){
model.addAttribute("book", this.bookService.getBookbyTitle(title));
return "books";
}

Код в JSP для данной формы/кнопки:

 <h1>Find a Book</h1>
 <c:url var="findAction" value="/books/find"/>
 <form:form action="${findAction}" commandName="book">
 <table>
  <tr>
    <td>
        <form:label path="bookTitle">
            <spring:message text="Title"/>
        </form:label>
    </td>
    <td>
        <form:input path="bookTitle"/>
    </td>
   </tr>
   <tr>
    <td colspan="2">
        <c:if test="${empty book.bookTitle}">
            <input type="submit"
                   value="<spring:message text="Find Book"/>"/>
        </c:if>
    </td>
     </tr>
  </table>
  </form:form>

По итогу имею java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'book' available as request attribute

Проект:https://github.com/iliapastushenko/BookManager

Очень надеюсь на Вашу помощь!

READ ALSO
Формула в строку Java

Формула в строку Java

Задача: Составить таблицу значений функции y = f(x) на отрезке [n; m] с шагом k

219
Как запустить rest-client в 3 потока?

Как запустить rest-client в 3 потока?

Написал рест клиент для выгрузки данных:

310
Почему крашится LoaderManager при переключении вкладки ViewPager?

Почему крашится LoaderManager при переключении вкладки ViewPager?

В главной активности у меня стоит ViewPager перелистывающий 4 страницы (фрагмента)В 1 фаргменте используется LoaderManager для асинхронной загрузки...

255
Как добавить вторую очередь для ответа @JmsListner

Как добавить вторую очередь для ответа @JmsListner

Добрый день! Есть listener, который слушает очередь JMS MQ и отправляет ответ по умолчаниюВозможно ли добавить вторую очередь для ответов и сформировать...

204