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

자바마스터하자님의 프로필 이미지
자바마스터하자

작성한 질문수

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

Model 추가 - v3

코드 질문합니다

작성

·

370

·

수정됨

0

private static void modelToRequestAttribute(Map<String, Object> model, HttpServletRequest request) {
    //request에 member저장
    model.forEach((String, Object) -> request.setAttribute(String,Object));
    System.out.println("modelToRequestAttribute model = " + model.get("model"));
}

이 코드에서요

model.forEach((String, Object) -> request.setAttribute(String,Object));

여기서 MemberSaveControllerV3 클래스가 실행된다면

String에는 "member" Object에는 member객체가 들어가게 될텐데요 member객체가 루프를 돈다고하면

String username = paramMap.get("username");
int age = Integer.parseInt(paramMap.get("age"));

member객체에 저장된 이 2개의 변수가 루프를 도는게 맞을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

model.forEach((String, Object) -> request.setAttribute(String,Object)); 코드는 Map의 모든 요소를 순회하면서 해당 요소를 HttpServletRequest 객체의 속성으로 설정하는 역할을 합니다.

따라서, MemberSaveControllerV3 클래스가 실행된다면 paramMap.get(“username”) 과 paramMap.get(“age”)를 통해 각각의 username과 age 값을 추출할 수 있습니다.

루프를 돌며 member 객체에 저장된 변수인 username과 age는 paramMap.get(“username”)과 paramMap.get(“age”)를 통해 불러올 수 있으며, MemberSaveControllerV3 클래스의 실행과는 직접적인 관련이 없습니다.

따라서, model.forEach((String, Object) -> request.setAttribute(String,Object)); 코드를 통해 요청 속성으로 저장되는 것은 model 맵에 포함된 모든 키와 값들이며, 루프를 돌면서 변수에 저장된 값은 따로 추출되지 않습니다.

요소의 키와 값을 따로 추출하고 싶은 경우, Map의 keySet() 메소드를 사용하여 키들을 추출하고, 각 키에 대응하는 값은 get(key) 메소드를 사용하여 추출할 수 있습니다.

조금 더 자세한 사항이 필요하시다면, MemberSaveControllerV3 클래스와 관련된 코드를 더 자세히 살펴봐야 할 것 같아요.

더 궁금한 점이 있다면 언제든지 물어보세요. 좋은 하루 되세요!

자바마스터하자님의 프로필 이미지
자바마스터하자

작성한 질문수

질문하기