inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

V3 Modelview와 Map<String, String> 질문

209

박민성

작성한 질문수 31

0

public ModelView process(Map<String, String> paramMap) {
    String username = paramMap.get("username");
    int age = Integer.parseInt(paramMap.get("age"));

    Member member = new Member(username, age);
    memberRepository.save(member);

    ModelView mv = new ModelView("save-result");
    mv.getModel().put("member", member);
    return mv;
public class ModelView {
    private String viewName;
    private Map<String, Object> model = new HashMap<>();

    public ModelView(String viewName) {
        this.viewName = viewName;
    }

    public String getViewName() {
        return viewName;
    }

    public void setViewName(String viewName) {
        this.viewName = viewName;
    }

    public Map<String, Object> getModel() {
        return model;
    }

    public void setModel(Map<String, Object> model) {
        this.model = model;
    }

1.Modelview에서 model이 언제생성된거죠..? getmodel을 해주려면 먼저 선언이 되어있는 model을 가지고 반환해줘야하는데 언제선언이 된거죠?

 

        Map<String, String> paramMap = createParamMap(request);
        ModelView mv = controller.process(paramMap);

        String viewName = mv.getViewName(); //논리이름 new-form
        MyView view = viewResolver(viewName);

        view.render(mv.getModel(), request, response);
    }

    private static MyView viewResolver(String viewName) {
        return new MyView("/WEB-INF/views/" + viewName + ".jsp");
    }

    private static Map<String, String> createParamMap(HttpServletRequest request) {
        Map<String, String> paramMap = new HashMap<>();
        request.getParameterNames().asIterator()
                .forEachRemaining(paramName ->paramMap.put(paramName, request.getParameter(paramName)));
        return paramMap;
    }
}

 

  1. Map<String, String> createMap에서 .forEachRemaining(paramName ->paramMap.put(paramName, request.getParameter(paramName))); 여기를 보면 request.getParmeter(paramName)로 paramName에대한 Value를 가지고오고있는데 여기서 말하는 Value는 age인데 int로 선언하는게 맞지않나요?

항상 답변감사드립니다

 

spring mvc

답변 2

0

David

안녕하세요. 박민성님, 공식 서포터즈 David입니다.

  1. 여기서 선언되고 있습니다. 혹시나 자바의 변수 선언 문법이 익숙치 않으시다면 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 강의의 변수 섹션을 참고해 주세요🙂

image

  1. 파라미터가 정수만 입력받는 것이 아니기에 우선 문자열로 모든 것을 받고난 뒤, 필요한 타입으로 변환하여 사용합니다.

감사합니다.

0

박민성

아 기본적인 실수를해버렸네요.. 아직기초가 부족했나봅니다

2번에서 자동으로 형변환이 되는건가요?

0

David

본 강의 HTTP 메시지 컨버터 편을 참고해 주세요:)

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문해주신 내용과 관련하여 비슷한 주제로 궁금증을 해결한 다른 수강생의 질문이 있어 링크를 공유드립니다. 해당 링크에서는 ModelViewmodel 생성 시점과 Map<String, String> 사용법에 대해 설명하고 있습니다.

  • 강의 수강생이 ModelViewmodel의 선언 및 사용 방법과 Map<String, String>의 사용법에 대해 질문한 내용에 대한 답변 링크입니다: FrontControllerServletV3의 기능중 이해가 안되는 부분이 있습니다.

  • 해당 내용에서 ModelViewmodel 필드는 ModelView 클래스의 생성자에서 생성되며, Map<String, String> paramMap을 사용하여 요청 파라미터를 매핑하고 컨트롤러에 전달하는 방식에 대해 설명하고 있습니다.

강의 내용을 다시 한번 확인해 보시고, 추가적인 질문이 있으시면 동일한 게시판에 남겨주시면 됩니다.

servlet과 container에 대한 질문입니다

0

25

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

64

1

jsp 의존성 수정 요청

0

78

2

요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?

0

143

1

save() 메서드 문의

0

67

1

절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상

0

101

1

request-body-json

0

83

2

MVC 패턴의 적용 단위

0

97

1

RequestMapping을 이용한 핸들러, 어댑터

0

119

2

save 후 결과화면

0

89

2

jsp를 이용한 view

0

97

1

application.properties에 debug 추가해도 결과가 똑같습니다.

0

178

1

수업 코드 제공 관련 문의

0

97

2

RequestMappingHandlerAdapter의 Controller 호출 과정

0

100

3

파일 오픈 시

0

70

1

스프링 배치 관련

0

78

1

@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부

0

112

1

postman으로 /request-body-json-v1 호출시 500 error

0

95

1

프론트엔드와 백엔드의 mvc, rest api에 대한 질문

0

79

1

모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문

0

111

1

console log 출력 관련 질문입니다.

0

75

1

애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ

0

139

1

html 변경하는 부분 적용 문제

0

103

1

한글 깨짐

0

76

2