Redirect URL에 쿼리 파라미터가 생기는 경우

2022. 4. 14. 09:00· 개발/[오류]
목차
  1. 1. 진행 상황
  2. 2. 원인
  3. ※ 참고

Redirect URL에 쿼리 파라미터가 생기는 경우

 

1. 진행 상황

테스트를 하던 중 위와 같이 오류가 나왔다.

테스트 코드와 컨트롤러는 다음과 같다.

<테스트 코드>


@Test
    void 상품_등록_성공_테스트() throws Exception {
        //given
    MultiValueMap<String, String> params= new LinkedMultiValueMap<>();
        params.add("name", "test");
        params.add("author", "test");
        params.add("publisher", "test");
        params.add("category", "NOVEL");
        params.add("price", "15000");
        params.add("stockQuantity", "999");
        //when
        mvc.perform(post("/items/post")
                        .params(params))
        //then
                .andExpect(status().is3xxRedirection())
                .andExpect(redirectedUrl("/items/list"));
    }

<컨트롤러>

public class ItemPostController implements ItemCategoryController{
  // 중략
  @PostMapping("/post")
    public String save(@Valid @ModelAttribute("itemForm") ItemFormDto itemForm, BindingResult result) {

        if (result.hasErrors()) {
            log.info("ItemForm 검증 오류 : {}", result);
            return "items/postItemForm";
        }

        itemService.saveItem(itemForm.toEntity());
        return "redirect:/items/list";
    }
public interface ItemCategoryController {

    @ModelAttribute("itemCategories")
    default ItemCategory[] itemCategories() {
        return ItemCategory.values();
    }
}

별 문제 없는데?(

삽질 시작

)



2. 원인

ItemPostController에 로그를 찍어서 확인해봤는데

데이터를 제대로 전달이 되었다.

원인을 찾아보기 위해 코드를 지워보고 추가로 넣고 하면서 찾아봤는데, itemCategories=~라고 나오는데 이게 쿼리 파라미터로 넘어가는 것 같았다. 하지만 카테고리 컨트롤러가 나중에 확장할 때 계속 쓰일 것 같아서 따로 수정을 하기 힘들었다. 그러다가 redirect를 수정하는 방법을 이 글에서 보았다.

바로 아래와 같이 RedirectAttributes를 추가하는 것이다.

@PostMapping("/post")
    public String save(@Valid @ModelAttribute("itemForm") ItemFormDto itemForm, BindingResult result, RedirectAttributes redirectAttributes)

그러면 테스트 결과는 성공으로 나온다.

 


※ 참고

  • Spring MVC Controller: Redirect without parameters being added to my url - Stack Overflow
저작자표시 (새창열림)

'개발 > [오류]' 카테고리의 다른 글

Interceptor에서 JWT를 사용할 때 주의점  (1) 2024.02.07
CORS와 스프링에서의 해결법  (0) 2023.05.28
Embedded Type Test 문제와 H2 GenerationType 문제  (0) 2022.04.12
ModelAttribute 관련 오류  (0) 2022.03.23
테스트 데이터 격리  (0) 2022.03.18
  1. 1. 진행 상황
  2. 2. 원인
  3. ※ 참고
'개발/[오류]' 카테고리의 다른 글
  • Interceptor에서 JWT를 사용할 때 주의점
  • CORS와 스프링에서의 해결법
  • Embedded Type Test 문제와 H2 GenerationType 문제
  • ModelAttribute 관련 오류
쿠엔크
쿠엔크
우아한테크코스 5기 BE 에단 Github : https://github.com/cookienc
쿠엔크
기러기는 기록기록
쿠엔크
전체
오늘
어제
  • 분류 전체보기 (132)
    • CS (46)
      • [OS] (12)
      • [NETWORK] (10)
      • [DATABASE] (11)
      • [BASIC CONCEPT] (1)
      • [DATA STRUCTURE] (7)
      • [ALGORITHM] (5)
    • LANGUAGE (17)
      • [JAVA] (17)
    • DESIGN_PATTERN (2)
    • FRAMEWORK (18)
      • [SPRING] (18)
    • ORM (11)
      • JPA (11)
    • AWS (7)
    • BOOK (10)
      • [자바 웹 개발 워크북] (3)
      • [이펙티브 자바] (7)
    • 개발 (19)
      • [오류] (7)
      • [고민] (1)
      • [우테코] (10)
      • [iTracker] (1)
    • Tip (1)
      • [Plugins] (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Effective Java
  • CORS
  • 스프링
  • JPA
  • 자바 웹 개발 워크북
  • 운영체제
  • HTTP
  • JVM
  • 데이터베이스
  • 자료구조
  • 디자인 패턴
  • Spring
  • 개념
  • aws
  • 오류
  • 가비아
  • java
  • 알고리즘
  • ArgumentResolver
  • 네트워크

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
쿠엔크
Redirect URL에 쿼리 파라미터가 생기는 경우

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.