인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

spring님의 프로필 이미지
spring

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Model 추가 - v3

질문이요..!!

작성

·

181

0

ModelView process(Map<String, String><string, string=""> paramMap); 에서 String은 어떤 걸 나타내는 건가요,,?? ModelView 객체의 viewName과 model의 이름인가요?? 헷갈리네여 ㅠㅠ..</string,>

답변 1

0

안녕하세요, potatoo 님. 공식 서포터즈 codesweaver 입니다.
.
Map<String, String> paramMap 에서 좌측 String 은 '키', 우측 스트링은 '값'을 의미 합니다.

맵이라는 자료구조는 {키:값, 키:값 ...} 형태의 구조를 가지고 있다고 보시면 됩니다.

 

사용자가 만약 로그인 폼을 전송했다고 하면 값은 다음과 같은 형태로 백엔드로 전달됩니다.

email: sample@naver.com

password: 12341234

 

이 때 '키'는 email, password 이고  '값'은 sample@naver.com, 12341234 입니다.

이를 백엔드에서 HttpServletRequest request 객체로 접근할 때는 request.getParameter("email"); 과 같이 키를 이용하여 접근합니다.

그리고 paramMap에 '키'와 '값'을 넣을땐 다음과 같이 합니다. paramMap.put("email", "sample@naver.com");

 

강의에서는 람다라는 방식을 이용해 사용자가 전달한 모든 폼 값을 Map 객체에 밀어넣는 작업을 일괄적으로 한 것입니다.

람다 부분이 조금 어렵다면 아래와 같은 코드를 축약하여 사용했다고 보시면 됩니다.

paramMap.put(request.getParameter("email"));
paramMap.put(request.getParameter("password"));

// 람다를 쓰면 
request
  .getParameterNames()
  .asIterator(
      name => 
         paramMap.put(name, request.getParameter(name))
  )

.
감사합니다.

spring님의 프로필 이미지
spring
질문자

그러면 ModelView process(Map<String, String> paramMap) 은 HttpServletRequest request 객체에서 볼 때, 예를 들어서 회원가입이라면 앞의 String은 username이고, 뒤의 String은 username(키)의 값인 예를들어 abc 라고 생각하면 되는건가요?

네 맞습니다 :)

사용자가 입력한 폼의 이름이 키로 들어갑니다.

spring님의 프로필 이미지
spring

작성한 질문수

질문하기