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; } }
| |