AbstractController
  - Controller 인터페이스를 구현한 추상 클래스
  - 단순히 클라이언트의 요청을 처리한 뒤 ModelAndView를 리턴
  - AbstractController 클래스를 상속받은 컨트롤러는 handelRequestInternal()메서드를 구현하면 됨


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <!-- HandlerMapping -->
    <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/listAbsCont.sp">listAbstractController</prop>
            </props>
        </property>
    </bean>

   
    <!-- ViewResolver -->
    <bean id="internalResourceViewResolver" 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>
   
    <bean id="listAbstractController" class="controller.ListAbstractController">
        <property name="supportedMethods" value="GET"></property>
    </bean>

</beans>


package controller;

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 ListAbstractController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // TODO Auto-generated method stub
       
        //parameter 구함
        String param1 = request.getParameter("param1");
       
        //필요한 로직 구현
       

        //ModelAndView
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("view_name");
        modelAndView.addObject("aaa", "bbb");

        return modelAndView;
    }
}


■ AbstractController의 주요 프로퍼티
프로퍼티 이름
기본 값
설명
supportedMethod
GET, POST
컨트롤러가 지원하는 HTTP 메서드 목록을 콤마로 구분하여 입력
requirSession
false
요청을 처리하는데 반드시 HttpSession이 필요한 지의 여부를 설정.
HttpSession이 존재하지 않으면 ServletException을 발생시킴.
cacheSeconds
-1
응답에 포함될 캐시 헤더의 값을 초 단위로 입력.
값이 0이면 캐시를 수행하지 않는 헤더를 갖는다. -1인 경우 캐시 관련 헤더를 포함하지 않는다.
양수 값인 경우 지정된 시간(초)만큼 내용을 캐시하는 헤더를 포함한다.



[참고자료] 스프링 2.5 프로그래밍 (최범균)

+ Recent posts