본문 바로가기

Web/현업 경험

커스텀 URL 이동 후 URL에 붙는 파라메터 제거 후 리다이렉트 처리 하는 방법

    @RequestMapping(value = "/outer.do", produces = MediaType.TEXT_HTML_VALUE)
    public RedirectView outer(@RequestParam(required = true) String url, HttpServletRequest request) throws Exception {
        RedirectView redirectView = new RedirectView();
        
        String result = "";

        String acode = request.getParameter("acode");

        //url 자체에 acode 있음
        if (!"no".equals(acode)) {

            //acode 가 첫번째 파라미터
            if (url.indexOf("?") < 0) {
                result = url + "?acode=" + acode;
            }
            //acode가 첫번째 파라미터 가 아닌경우
            else {
                result = url + "&acode=" + acode;
            }
        }
        
        result = url.replaceAll("&amp;", "&");
        
        // 리다이렉트 setUrl 처리
        redirectView.setUrl(result);
        
        // 리다이렉트시 URL에 붙는 파라메터 제거
        redirectView.setExposeModelAttributes(false);
        return redirectView;
    }