2017년 1월 25일 수요일

자바교육/스프링교육/스프링프레임워크/스프링부트학원추천★탑크리에듀_spring을 이용한 간단한 게시판 만들기 (3)

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

댓글 없음:

댓글 쓰기