[html]
<!-- 검색창 -->
<!-- action 주소는 목록 조회 주소와 똑같이 사용 -->
<form th:action="@{{code}(code=${boardCode})}" method="get" id="boardSearch">
<select name="key" id="searchKey">
<option value="t">제목</option>
<option value="c">내용</option>
<option value="tc">제목+내용</option>
<option value="w">작성자</option>
</select>
<input type="text" name="query" id="searchQuery" placeholder="검색어를 입력해주세요.">
<button>검색</button>
<!-- 검색 버튼 누를 시 제출되는 값 : key, query -->
</form>
cp : 현재 조회하려는 목록의 페이지 번호 (필수 아님, 없으면 1)]
[Controller]
@Controller
@Slf4j
@RequiredArgsConstructor
@RequestMapping("board")
public class BoardController {
private final BoardService service;
/** 게시글 목록 조회
* @param boardCode : 게시판 종류 번호
* @param cp : 현재 조회하려는 목록의 페이지 번호
* (필수 아님, 없으면 1)
* @param model : forward 시 데이터 전달하는 용도의 객체(request)
*/
@GetMapping("{boardCode:[0-9]+}")
public String selectBoardList(
@PathVariable("boardCode") int boardCode,
@RequestParam(value = "cp", required = false, defaultValue = "1") int cp,
Model model,
@RequestParam Map<String, Object> paramMap) {
log.debug("paramMap : {}", paramMap);
Map<String, Object> map = null;
// 검색이 아닌 경우 == 일반 목록 조회
if(paramMap.get("key") == null) {
// 서비스 호출 후 결과 반환 받기
// - 목록 조회인데 Map으로 반환 받는 이유?
// -> 서비스에서 여러 결과를 만들어 내야되는데
// 메서드는 반환을 1개만 할 수 있기 때문에
// Map으로 묶어서 반환 받을 예정
map = service.selectBoardList(boardCode, cp);
} else { // 검색한 경우
// paramMap에 key, query 담겨 있음
map = service.selectSearchList(boardCode, cp, paramMap);
}
// map에 묶여있는 값 풀어놓기
List<Board> boardList = (List<Board>)map.get("boardList");
Pagination pagination = (Pagination)map.get("pagination");
// 정상 조회 되었는지 log 확인
// for(Board b : boardList) log.debug(b.toString());
// log.debug(pagination.toString());
model.addAttribute("boardList", boardList);
model.addAttribute("pagination", pagination);
return "board/boardList";
}'BackEnd > Spring' 카테고리의 다른 글
| [Spring] 알림 보내기 (0) | 2024.10.17 |
|---|---|
| [Spring]예외처리 (0) | 2024.10.15 |
| [spring]인터셉터(Interceptor) (0) | 2024.10.14 |
| [Spring]댓글 등록/삭제/등록 (0) | 2024.10.11 |
| [Spring]Spring Boot 프로젝트, 파일 구조 파악 (0) | 2024.10.10 |