検索機能の追加
投稿全体を表示するときに、作成者/タイトルを入力し、ajaxを使用してコンテンツを表示します.(クリック率/推奨率のソートも差が少なくていいのでしょうか?)
jsp bodyで
controller
はい、順番に並べて、クリック率で並べて、私のものになったようです.
jsp bodyで
<form class="row g-3 container text-center" style="margin-top: 100px;" action="/board/search" method="get">
<div class="col-auto" >
<select class="form-select" style="width:100px;height:40px; display:inline;" name="searchtype">
<option value="b_title">제목</option>
<option value="m_id">작성자</option>
</select>
</div>
<div class="col-auto">
<input class="form-control" type="text" name="keyword">
</div>
<div class="col-auto">
<input class="form-control" type="submit" value="검색">
</div>
</form>
controller
@RequestMapping(value="search", method=RequestMethod.GET)
public String search(@RequestParam("searchtype") String searchtype,
@RequestParam("keyword") String keyword, Model model) {
List<BoardDTO> bList = bs.search(searchtype, keyword);
model.addAttribute("bList", bList);
return "/board/boardFindAll";
}
ServiceImpl-検索タイプとキーワードの2つの値を含む@Override
public List<BoardDTO> search(String searchtype, String keyword) {
Map<String, String> searchParam = new HashMap<String, String>();
searchParam.put("type", searchtype);
searchParam.put("word", keyword);
List<BoardDTO> bList = br.search(searchParam);
return bList;
}
repositorypublic List<BoardDTO> search(Map<String, String> searchParam) {
return sql.selectList("Board.search", searchParam);
}
mapperでlike演算子(%ワイルドカード)を使用する場合はconcatを貼り付ける必要があります!<select id="search" parameterType="java.util.HashMap" resultType="board">
select * from board_table
<include refid="sear"></include>
</select>
<sql id="sear">
<choose>
<when test="type=='b_title'">
where b_title like concat ('%', #{word}, '%')
</when>
<when test="type=='m_id'">
where m_id like concat ('%', #{word}, '%')
</when>
</choose>
</sql>
マッパーは初めて見たので、理解が遅いです.はい、順番に並べて、クリック率で並べて、私のものになったようです.
Reference
この問題について(検索機能の追加), 我々は、より多くの情報をここで見つけました https://velog.io/@hellocdpa/검색기능-추가하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol