model 객체
1. controller에서 생성한 데이터를 담아서 view로 전달할때 사용하는 객체입니다. 예를 들어 게시판의 목록을 구현할때 리스트를 model에 담아 view에서 접근할 수 있게 됩니다.
2. model은 key와 value 값을 가진 HashMap 형태를 갖고 있습니다. model.addAttribute("key", "value") 메서드를 통해 전달하고자 하는 데이터를 전달할 수 있게 됩니다.
model 객체 사용법
model.addAttribute("키", "값");
아래는 controller에서 게시글 목록 페이지를 구현하는 메서드입니다. 특히 예시로 가져온 게시글 목록을 구현하기 위해서는 데이터를 List형태로 보내주어야 합니다.
@RequestMapping(value= "/list", method=RequestMethod.GET)
public void list(@RequestParam(value="nowPageNum", required=false) String nowPageNum, @RequestParam(value="category") String category, @RequestParam(value="keyword", required=false) String keyword, Model model) {
if(nowPageNum == null) {
nowPageNum = "1";
}
int nowPageNumber = Integer.parseInt(nowPageNum);
PageVO pageVO = new PageVO(nowPageNumber, service.getTotal(keyword, category), keyword);
model.addAttribute("category", category);
model.addAttribute("list", service.listView(pageVO, category));
model.addAttribute("keyword", keyword);
model.addAttribute("paging", pageVO);
}
다음은 view입니다. view에서는 위에서 작성한 메서드에서 model을 통해 넘긴 데이터를 사용하기 위해 for문을 사용하였습니다. (넘겨진 데이터가 List 형태이므로 for문으로 하나씩 접근해야 합니다.)
<c:forEach items="${list}" var="board">
<tr class="odd gradeX">
<td>
<a class='move' href='<c:out value="${contextPath}/board/detail.do?boardNO=${board.boardNO}"/>'>
<c:out value="${board.title}" />
</a>
</td>
<td><c:out value="${board.id}" /></td>
<td>
<fmt:formatDate pattern="yyyy-MM-dd" value="${board.writeDate}" />
</td>
<td><c:out value="${board.count}"/></td>
</tr>
</c:forEach>
ModelAndView 객체
model 객체와 비슷하나 model 객체는 데이터만 저장하는 반면에 ModelAndView 객체는 데이터와 view를 함께 보냅니다.
ModelAndView에는 setViewName() 메서드가 있고, 이 메서드를 통해 이동할 페이지를 설정할 수 있게 됩니다.
'Spring' 카테고리의 다른 글
[Spring]Mybatis 연결 - root-context.xml 설정 (0) | 2022.10.25 |
---|---|
[Spring] 게시판 파일 기능 설정 (0) | 2022.10.24 |
[Spring] Filter, Interceptor (0) | 2022.10.21 |
[Spring] DB 정보 properties파일을 통해 분리하기 (0) | 2022.08.16 |
이클립스 log cannot be resolved 에러 (0) | 2022.08.06 |