boardList.do에 매핑되었는 BoardList 클래스 전체 소스입니다~~
보다시피 bean에서 설정한대로 멤버변수가 3개 존재하고요 그에 따른 set메서드도 존재하고요~~~
Controller 인터페이스를 구현하고 있습니다~~
( MVC 패턴의 C역할을 하는 class 입니다 )
구현된 메소드를 보자면 handleRequest 요거죠
이친구 하는 일은
1. request 와 response 객체를 받아서 그것을 인자로 비지니스 로직을 처리할 서비스를 호출하고
2. ModelAndView 객체를 생성해서 반환합니다~ view 화면이 되겠죠
구현을 어떻게 했냐 하면~ boardList 클래스는 게시판 리스트를 보는 부분을 처리하는 컨트롤러 클래스로
1. request 에서 페이지번호를 받아서 한화면에 뿌려줄 글시작번호와 마지막 번호를 구하죠 ~~~~ 그런다음~
2. 이값들을 가지고 리스트를 보는 서비스를 호출합니다 ~
3. 반환받은 리스트를 가지고 ModelAndView 객체를 생성해서 리턴~ 하죠
ModelAndView 어찌 생성하냐면~
린턴 후 실행될 페이지 경로를 setViewName메서드를 통해서 설정해주고
그페이지에서 사용될 변수들을 addObject메서드를 통해서 넣어줍니다.
( Object는 화면에 뿌려줄 list값과 하단 페이징 값들이겠죠 )
근데 이때.. 보시면 아시겠지만 setViewName에 설정된 값이 완전하지 않습니다 ~ 확장자와 path가 없죠~~ 이것을 일괄적으로 붙여줘야하는데...
이부분은 spring-servlet.xml에서 설정합니다~
그부분은 spring-servlet.xml에
======================= spring-servlet.xml========================
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<property name="prefix"><value>./jsp/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean>
================================================================
이부분을 넣어주세요 설명을 하자면 ModelAndView 객체에 설정된 값 앞에는 ./jsp/를 뒤에는 .jsp를 붙여주라는 내용이죠~
package board.controller;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import board.common.Paging;
import board.service.BoardService;
public class BoardList implements Controller {
private BoardService boardService;
private Paging paging; //5
private int pageLine; //10
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
String pageNo= request.getParameter("pageNo");
String pageParam = null;
String pageStr = null;
if( pageNo == null )
pageNo = "1";
int start = ((Integer.parseInt(pageNo)-1) * pageLine);
int end = (Integer.parseInt(pageNo) * pageLine);
ArrayList list = (ArrayList)boardService.getList(start, end);
String listCount = Integer.toString(boardService.count());
//페이징 처리
pageParam = "/myboard/board_list.do?";
pageStr = paging.getNextPageIndexes(pageParam, listCount, pageLine, pageNo );
//View 처리
ModelAndView mav = new ModelAndView();
mav.addObject("board", list);
mav.addObject("pageStr", pageStr);
mav.addObject("pageNo", pageNo);
mav.setViewName("boardList");
return mav;
}
public void setBoardService(BoardService boardService){
this.boardService = boardService;
}
public void setPageLine(int pageLine){
this.pageLine = pageLine;
}
public void setPaging(Paging paging){
this.paging = paging;
}
}
댓글 없음:
댓글 쓰기