오늘 내가 구현시킨 기능은 점심메뉴추천에서 글쓰기버튼을 눌렀을때 내용들을 출력시키는 코드였다.
@GetMapping("boardMain")
public String boardMain(
Model model) {
List<Board> boardList = service.boardMain();
model.addAttribute("boardList", boardList);
return "/board/boardMain";
}
List<Board> boardList = sevice.boardMain();
boardMain 메서드를 List<Board>로 묶어야, 등록한 글들이 다 출력될 수 있다.
@PostMapping("writeToMain")
public String boardWrite(
@ModelAttribute Board inputBoard,
// @SessionAttribute("loginMember") Member loginMember,
@RequestParam("boardImage") MultipartFile boardImage,
RedirectAttributes ra
) {
// 1) 작성자 회원번호를 inputBoard에 세팅
// inputBoard.setMemberNo(loginMember.getMemberNo());
inputBoard.setMemberNo(1);
// 2) 서비스 호출 후 결과(작성된 게시글 번호) 반환받기
int boardNo = service.boardWrite(inputBoard, boardImage);
// 3) 서비스 호출 후 결과(작성된 게시글 번호) 반환받기
return "redirect:boardMain";
}
PostMapping에서 writeToMain 은 html에 해당 from 코드에 적어놓은 action이고
return "redirect:boardMain"; -> 클쓰기버튼을 눌렀을 때 다시 boardMain 페이지로 돌아올 수 있게 하는것
원래는 board/writeToMain 으로하는 엄청난 잘못을 했다 ㅠ
sql문
<!-- 화면출력 -->
<select id="boardMain" resultType="Board">
SELECT
*
FROM
"BOARD"
ORDER BY BOARD_NO DESC
</select>
화면출력을 하는데 SELECT*FROM 에 WHERE에 boardNo = 1 로 했어서 한개밖에 출력이안됐다. ㅠㅠ
th:each="board : ${boardList}" 이치문으로 내용들을 다 반복할 수 있게한다 -> 글이 하나만조회되는게아니고 모두 조회 가능
<div>th:if="${board.boardImg}"
<img th:src="${board.boardImg}"
</div>
로 작성해야 사진을 불러올 수 있다.