개발공작소
article thumbnail
728x90

@RequestParam 어노테이션은 단일 파라메터를 전달받을 때 사용하는 어노테이션이다.
사용방법은 아래와 같이 쓰며, 활용하고자 하는 메서드의 파라메터값으로 @RequestParam을 넣어주면 된다.

@RequestParam("가져 올 데이터의 이름") [데이터타입] [가져 온 데이터를 담을 변수명]

[간단정리 끝]

============================================================================

 

오늘 View에서 Controller URL을 호출했는데 다음과 같은 에러가 떴다. 

정리하는 김에 다음 에러 해결방법과 @RequestParam을 정리해보려 한다.

에러 로그

 

우선 위와 같은 상황이 왜 발생하였느냐? 소스를 보면 다음과 같다.

message라는 파라메터를 받음

소스만 보면 아무 문제도 없다. 그냥 message라는 파라메터를 String타입의 message라는 변수에 담아

콘솔에 찍어주고 있다. 원래 잘 작동하던 녀석인데 다른 곳을 고치면서 에러가 발생하였다.

아래와 같은 두 메서드가 있다고 하자.

 

1. message데이터를 넘겨줌

message 데이터를 넘겨줌

2. message데이터를 넘겨주지 않음.

 

 

 

원래는 @RequestParam을 사용하지 않는 Controller였는데 갑자기 아래 그림처럼 받아야 하는 경우가 생긴것이다.

여기서 문제가 발생하는데, message라는 데이터를 받으려고
@RequestParam을 사용하니, message라는 데이터를 넘기면 제대로 실행이 되는데
message라는 데이터를 넘기지 않으면 400번에러가 발생하는 것이다.
왜냐하면 @RequestParam는 선언을 하는 순간 Default가 데이터가 반드시 필수 이기 때문이다.

 

그럼 이 Default를 바꿔주면 간단히 해결된다. message라는 데이터가 필수가 아니게 되는것이다!!

다음과 같이 바꿔주겠다.

 

required를 false값으로 줌

이렇게 하면 message라는 값은 필수값이 아니게 되기 때문에 message라는 데이터를 보내지 않아도 정상적으로

실행이 된다.

 

이렇게 @RequestParam값이 있든 없든 메서드는 제대로 실행이 된다.
물론 데이터가 없으니 null값이 뜨지만..

 

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!