spring로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

spring로 검색한 결과
등록일:2008-06-11 10:26:46
작성자:
제목:[spring] spring mvc에서 sitemesh사용시 decorator 파라미터


sitemesh의 ParameterDecoratorMapper를 사용할때 파라미터로 decorator 와 confirm 을 넘겨야 하는데 jsp 페이지에서 파라미터를 사용하여 view를 결정하는 것은 어쩔수 없지만 Controller에서 파라미터를 유지하는 것이 문제였다.


현재 Controller는 MultiActionController 와 SimpleFormController를 사용하고 있는데SimpleFormController에는 referenceData(HttpServletRequest request) 함수를 작성하여



 protected Map referenceData(HttpServletRequest request, Object command, Errors errors)

                                                                     throws Exception {
            Map map = new HashMap();
            String decorator = RequestUtils.getStringParameter(request, "decorator","");
            String confirm = RequestUtils.getStringParameter(request, "confirm","");
            map.put("decorator", decorator);
            map.put("confirm", confirm);
            return map;
 }

와 같이 하면 되는데...


MultiActionController에는 referenceData가 없다.

그래서 아래와 같이 handleRequestInternal를 재작성하여 referenceData함수를 만들었다.



package com.edutec.spring.controller;

import java.util.HashMap;
import java.util.Map;

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

import org.springframework.web.bind.RequestUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

/**
 * @author 장기창
 * @since 2006. 12. 08
 */
public class DecoratorMultiActionController extends MultiActionController {

 @Override
    protected ModelAndView handleRequestInternal(
             HttpServletRequest request
,  HttpServletResponse response) throws Exception {
           ModelAndView mv = super.handleRequestInternal(request, response);
           Map modelMap = referenceData(request);
           mv.addAllObjects(modelMap);
           return mv;
    }
 
    protected final Map referenceData(HttpServletRequest request) throws Exception {
          String decorator = RequestUtils.getStringParameter(request, "decorator","");
          String confirm = RequestUtils.getStringParameter(request, "confirm","");
 
          Map map = new HashMap();
          map.put("decorator", decorator);
          map.put("confirm", confirm);
          return map;
    }
}


그리고 기존에 MultiActionController를 상속받았던 Controller를 아래와 같이DecoratorMultiActionController를 상속받는다.


public class BoardController extends DecoratorMultiActionController {

}

 

출처 : http://blog.kichang.com/22