팀프로젝트/SpringBoot

스프링부트 팀플) 20240319 카테고리 검색 / 검색창

일일일코_장민기 2024. 3. 19. 16:41
728x90

일반 정렬 상태
잡담 탭을 클릭했을 경우 출력

 

게시판 글 리스트 jsp

<span name="category" value="정보" onClick="changeList('정보')">정보</span> |

<span name="category" value="문제 보고" onClick="changeList('문제 보고')">문제 보고</span> |

<span name="category" value="질문" onClick="changeList('질문')">질문</span> |

<span name="category" value="정리" onClick="changeList('정리')">정리</span> |

<span name="category" value="잡담" onClick="changeList('잡담')">잡담</span>

 

컨트롤러, 서비스, dao는 기존 게시판 정렬을 재활용

 

매퍼 내용 추가

<when test="orderBy == '정보'"> <!-- 정보 카테고리 -->

WHERE category = '정보'

ORDER BY boardNum desc

</when>

<when test="orderBy == '문제 보고'"> <!-- 문제 보고 카테고리 -->

WHERE category = '문제 보고'

ORDER BY boardNum desc

</when>

<when test="orderBy == '질문'"> <!-- 질문 카테고리 -->

WHERE category = '질문'

ORDER BY boardNum desc

</when>

<when test="orderBy == '정리'"> <!-- 정리 카테고리 -->

WHERE category = '정리'

ORDER BY boardNum desc

</when>

<when test="orderBy == '잡담'"> <!-- 잡담 카테고리 -->

WHERE category = '잡담'

ORDER BY boardNum desc

</when>

 

 

 

jsp에 검색 기능 추가

<form action="<c:url value='/searchPost'/>" method="post" style="display: inline;">

<select name="searchTag" >

<option value="title_contents">제목 + 내용</option>

<option value="title">제목</option>

<option value="contents">내용</option>

<option value="nickname">닉네임</option>

</select>

<input type="text" name="searchData">

<input type="submit" value="검색">

</form>

 

컨트롤러에 함수 추가

//게시판 글 검색하기

@PostMapping("/searchPost")

public ModelAndView searchPost(String searchTag, String searchData) {

HashMap<String, String> map = new HashMap<>();

map.put("searchTag", searchTag);

map.put("searchData", searchData);

List<DebugBoardDTO> list = serv.searchList(map);

ModelAndView mav = new ModelAndView();

mav.addObject("list", list);

mav.setViewName("member/Test/viewDBoardList");

return mav;

}

 

매퍼 추가

<!-- 게시판 글 검색 -->

<select id="searchList" resultType="DebugBoardDTO" parameterType="hashmap">

SELECT *

FROM debugBoardDB

<where>

<if test="searchTag == 'title_contents'"> <!-- 제목 + 내용 -->

AND (title LIKE '%'||#{searchData}||'%' OR content LIKE '%'||#{searchData}||'%')

</if>

<if test="searchTag == 'title'"> <!-- 제목 -->

AND title LIKE '%'||#{searchData}||'%'

</if>

<if test="searchTag == 'contents'"> <!-- 내용 -->

AND content LIKE '%'||#{searchData}||'%'

</if>

<if test="searchTag == 'nickname'"> <!-- 닉네임 -->

AND nickname = #{searchData}

</if>

</where>

ORDER BY boardNum desc

</select>

- choose when은 작동하지 않는다...이유는 몰랑