스프링

스프링 MVC Request 파라미터

수연정 2024. 1. 18. 11:32

RequestParam 사용법

 * @RequestParam 사용
 * - 파라미터 이름으로 바인딩
 * @ResponseBody 추가
 * - View 조회를 무시하고, HTTP message body에 직접 해당 내용 입력
 */
@ResponseBody
@RequestMapping("/request-param-v2")
public String requestParamV2(@RequestParam("username") String memberName,@RequestParam("age") int memberAge) {
 	log.info("username={}, age={}", memberName, memberAge);
 	return "ok";
}

핵심은 username={}, age={}

{}로 변수값 할당가능하다

 

Required

    @ResponseBody
    @RequestMapping("/request-param-required")
    public String requestParamRequired(
            @RequestParam(value = "username",required = true) String memberName,
            @RequestParam(value = "age", required = true) int memberAge){

        log.info("username={}, age={}", memberName, memberAge);
        return "ok";
    }

required가 true로 되어있으면 파라미터로 보내줘야 한다.

안 보내주면 오류 발생!

 

DefaultValue

@ResponseBody
@RequestMapping("/request-param-default")
public String requestParamDefaultValue(
        @RequestParam(value = "username",required = true, defaultValue = "guest") String memberName,
        @RequestParam(value = "age", required = true, defaultValue = "1") int memberAge){

    log.info("username={}, age={}", memberName, memberAge);
    return "ok";
}

여기서 파라미터로 빈문자를 줘도

defaultvalue 값으로 설정된다

@ModelAttribute

/**
 * @ModelAttribute 사용
 * 참고: model.addAttribute(helloData) 코드도 함께 자동 적용됨, 뒤에 model을 설명할 때 자세히
설명
 */
@ResponseBody
@RequestMapping("/model-attribute-v1")
public String modelAttributeV1(@ModelAttribute HelloData helloData) {
    log.info("username={}, age={}", helloData.getUsername(),
            helloData.getAge());
    return "ok";
}

자동으로 객체를 생성해준다!