참고 : Spring MVC 어플리케이션 개발 <5> MVC 컨트롤러 작성

현재 진행 중인 이클립스 프로젝트(webAddress)에서 src폴더에 member.web 패키지를 만듭니다. Spring에서 제공하는 AbstractController를 상속받는 MemberListController 클래스를 생성합니다.

package member.web;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class MemberListController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
            HttpServletResponse arg1) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

}

Member의 List를 반환하도록 handleRequestInternal() 메소드를 구현합시다. 그 전에 arg0과 arg1을 request와 response로 보다 명확한 이름을 사용하도록 바꿔줍니다.

구현하기전에 Spring MVC에 손대기 전에 만들어 두었던 Service, DAO, Domain layer를 구현했던 코드를
jar파일로 묶어서 WEB-INF/lib에 추가해줍니다. 그리고 개발 할 때 사용한 jar파일들도 추가해 줍니다.
[#M_more..|less..|jar파일로 묶는 방법은 프로젝트를 오른쪽 마우스로 클릭하고 Export를 선택합니다. 그리고 Java에서 jar파일을 선택해 줍니다.
bk71.bmp
next를 선택하고 jar파일 안에 묶어줄 패키지나 클래스들을 선택해 줍니다. 기본으로 모든 파일들이 선택되어 있습니다. 그리고 아랫 부분에 jar파일을 생성할 경로를 지정해 줍니다. 그림에서 파란색으로 칠해진 부분입니다.
bk72.bmp이제 코딩할 준비가 끝났습니다._M#]

public class MemberListController extends AbstractController {

    private MemberRepository memberRepository;

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {

        List<Member> memberList = memberRepository.getAllMembers();
        return new ModelAndView(“index”, “memberList”, memberList);
    }

    public void setMemberRepository(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

bk73.java
Member의 List를 jsp에서 사용할 수 있도록 위와 같이 코딩을 합니다.
녹색 글자 부분은 MemberRespository[footnote]Service Interface입니다.[/footnote]를 Spring의 IOC를 이용하기 위한 것입니다.
파란 글자 부분은 기존에 구현해 둔 MeberRepository를 사용하여 Member 리스트를 가져오도록 코딩을 했습니다.
보라색 부분은 “index”라는 View 이름에게[footnote]View Resolver에서 해당하는 파일 이름으로 변환해 줍니다.[/footnote] memberList(세번째 인자)를 memberList(두번째 인자)라는 이름으로 참조 할 수 있도록 던지는 부분입니다.

이제 코딩은 끝났고 환경 설정 파일을 이리 저리 바꿔주고 옮겨주는 일이 남았습니다.