해결된 질문
작성
·
643
·
수정됨
1
========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
@GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name1){ return "hello"+name1; }
위와 같은 코드와 url에서 localhost:8080/hello-string?name=springboot를 입력받았을 때
파라미터 name은 key값으로서 value값인name1과 바인딩 되어 name1에 springboot를 저장 하기위한 용도로 사용되는 건가요?
다른 시각으로 name1을 key값로 springboot를 value값 생각해도 되는건가요?
name - name1 - springboot
(key) - (value)
................(key) - (value)
즉, 이렇게 이해해도 되는건가요?
답변 1
1
파라미터 name은 key값으로서 value값인name1과 바인딩 되어 name1에 springboot를 저장 하기위한 용도로 사용되는 건가요?
key-value에 대한 정의가 제가 생각하는 것과 다른 것 같습니다.
@GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name1){ return "hello"+name1; }
localhost:8080/hello-string?name=springboot
여기서 key가 name이면 value는 springboot가 되어야 하지 않나 싶습니다.
정의를 논하기 보다는 왜 @RequestParam에 별도의 이름(name)을 지정하여 파라미터(name1)을 사용해야하는지, 어떠한 상황에서 사용하는지에 대한 것을 정리하면 되지 않나 싶습니다.
예를 들어
아래와 같이 input 영역에서 입력한 값을 서버에서 받을 때 name속성의 이름으로 서버 단에서 받을 수 있습니다.
<input type="text" name="id">..
그런데, 서버 단에서 id를 이미 사용하고 있어서 사용하지 못하거나
혹은 반대로 html에서 name을 다른 name으로 쓰거나, 자바 단에서 이름을 재정의하려는 목적으로 사용합니다.
.
감사합니다.
감사합니다!