前提・実現したいこと
SpringBootを用いて、Todoリスト作成アプリを作成しています。
データ登録・一覧表示と、編集機能は実装できましたが、Todoの名前によって
検索する機能実装で詰まっております。
検索結果を表示する画面は表示されるのですが、
検索結果が返ってきません。。
以下のようなクエリ文は発行されているので、
データはとって来れていると思うのですが、、
発生している問題・エラーメッセージ
検索ボタンを押した際に、発行されるクエリ文です
Hibernate: select todo0_.id as id1_0_, todo0_.create_time as create_t2_0_, todo0_.deadline as deadline3_0_, todo0_.status as status4_0_, todo0_.title as title5_0_, todo0_.update_time as update_t6_0_ from todo todo0_ Hibernate: select todo0_.id as id1_0_, todo0_.create_time as create_t2_0_, todo0_.deadline as deadline3_0_, todo0_.status as status4_0_, todo0_.title as title5_0_, todo0_.update_time as update_t6_0_ from todo todo0_ where (todo0_.title like ? escape ?) and todo0_.status=? order by todo0_.id desc
該当のソースコード
TodoCotnroller
1@GetMapping("/search/result") 2public String searchResult(@ModelAttribute String title, Model model) { 3 List<Todo> todolists = todoService.search("title", false); 4 model.addAttribute("result", todolists); 5 return "searchresult"; 6}
TodoRepository
1@Repository 2public interface TodoRepository extends JpaRepository<Todo, Long> { 3 List<Todo> findByTitleContainingAndStatusEqualsOrderByIdDesc(String title, boolean status); 4}
TodoService
1public List<Todo> search(String title, boolean status) { 2 return todoRepository.findByTitleContainingAndStatusEqualsOrderByIdDesc(title, status); 3 }
search
1<!DOCTYPE html> 2<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> 3<head> 4 <meta charset="UTF-8"> 5 <link th:href="@{css/index.css}" rel="stylesheet" type="text/css"/> 6 <link th:href="@{css/search.css}" rel="stylesheet" type="text/css"/> 7 <link th:href="@{css/reset.css}" rel="stylesheet" type="text/css"/> 8 9 <title>TO DOアプリ</title> 10</head> 11<body> 12<div class="header"> 13 <a class="index-link" th:href="@{/}">TODO リスト</a> 14</div> 15 16<div class="search-box"> 17 <div class="search-from"> 18 <form th:action="@{/search/result}" method="get"> 19 <input type="text" name="title" th:value="${title}"/> 20 <input type="submit" value="検索する"> 21 </form> 22 23 </div> 24 25 <div class="result-box" th:each="todo : ${list}"> 26 <div class="history-left"> 27 <p class="title" th:text="${todo.title}"></p> 28 <p class="deadline" th:text="'期限:'+ ${todo.deadline}"></p> 29 <p class="createtime" th:text="'作成日:' + ${todo.createTime}"></p> 30 </div> 31 <div class="history-right"> 32 <div class="button-box"> 33 <a class="edit-button" th:href="@{/edit/{id}(id=${todo.id})}">編集</a> 34 <div class="complete-button"> 未完了</div> 35 </div> 36 </div> 37 </div> 38</div> 39 40</div> 41</body> 42</html>
searchresult
1<!DOCTYPE html> 2<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> 3<head> 4 <meta charset="UTF-8"> 5 <link th:href="@{css/index.css}" rel="stylesheet" type="text/css"/> 6 <link th:href="@{css/search.css}" rel="stylesheet" type="text/css"/> 7 <link th:href="@{css/reset.css}" rel="stylesheet" type="text/css"/> 8 9 <title>TO DOアプリ</title> 10</head> 11<body> 12<div class="header"> 13 <a class="index-link" th:href="@{/}">TODO リスト</a> 14</div> 15 16<div class="search-box"> 17 <div class="search-from"> 18 <form th:action="@{/search/result}" method="get"> 19 <input type="text" name="title" th:value="${title}"/> 20 <input type="submit" value="検索する"> 21 </form> 22 23 </div> 24 25 <div class="result-box" th:each="todo : ${result}"> 26 <div class="history-left"> 27 <p class="title" th:text="${todo.title}"></p> 28 <p class="deadline" th:text="'期限:'+ ${todo.deadline}"></p> 29 <p class="createtime" th:text="'作成日:' + ${todo.createTime}"></p> 30 </div> 31 <div class="history-right"> 32 <div class="button-box"> 33 <a class="edit-button" th:href="@{/edit/{id}(id=${todo.id})}">編集</a> 34 <div class="complete-button"> 未完了</div> 35 </div> 36 </div> 37 </div> 38</div> 39 40</div> 41</body> 42</html>
試したこと
thymeleafなどの使い方が悪いと思い、search.htmlのformを変更したりなど行い
どうにか値を検索させることはできたのですが、肝心の表示がうまくいきません。。
データベースは、Mysqlを利用しています
今週からSpringを使用したので、まだまだ不明な点が多いのですが、
考えられる原因など、ご教授頂ければ幸いです。 。
何卒、よろしくお願い致します!!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/08 04:26