본문 바로가기
Java/Spring

Spring Legacy Project part 3. (Controller의 Parameter 전달)

by HoneyIT 2021. 2. 28.

HomeController에 파라미터를 넘기기 위한 메서드 들을 작성해보겠습니다.

 

String

@GetMapping("/name")
public void getName(String name) {
	log.info(name);
}

 

http://localhost:8000/myapp01/name?name=kim

URL 창에 다음과 같이 '?' 뒤에 변수명과 값을 넣어줍니다.

그리고 콘솔 창을 확인해보면 

 

'kim'이라고 잘 넘어온 것을 확인할 수 있습니다.

 

Integer

@GetMapping("/age")
public void getAge(int age) {
	log.info(age);
}

 

http://localhost:8000/myapp01/age?age=26

Integer도 마찬가지입니다.

 

 

Arrays

@GetMapping("/nos")
public void getNos(int nos[]) {
	log.info(Arrays.toString(nos));
}

 

http://localhost:8000/myapp01/nos?nos=10&nos=26

Array를 이용하여 여러 값을 하나의 파라미터로 가져올 수 있습니다.

 

배열로 값을 가져옵니다.

배열이 아닐 경우는 앞에 있는 값을 하나만 가져옵니다.

 

Defualt

@GetMapping("/list")
public void getList(@RequestParam(defaultValue = "1", name = "p") int page) {
	log.info(page);
}

list의 경우 @RequestParam을 이용하여 값이 넘어오지 않을 경우 설정된 기본 값이 들어가도록 default를 1로 설정합니다

또한 변수명이 길 경우 대체할 수 있는 이름을 p로 설정할 수 있습니다.

http://localhost:8000/myapp01/list?list=10

 

위와 같이 변수명이 지정한 'p'가 아닌 경우 일치하지 않는 것으로 간주되어 default 값인 1이 부여됩니다.

 

http://localhost:8000/myapp01/list?p=10

 

설정된 'p'로 값을 주어야 제대로 부여됩니다.

 

 

VO

VO 객체를 생성하여 값을 가져와 보겠습니다.

package com.jhoney.myapp01;

import lombok.Data;

@Data
public class DataVO {
	private String name;
	private int age;
}

같은 패키지 안에 DataVO 객체를 생성합니다.

getter/setter를 @Data 어노테이션으로 자동으로 생성합니다.

 

@GetMapping("/data")
public void getData(DataVO vo) {
	log.info(vo);
}

 

http://localhost:8000/myapp01/data?name=kim&age=26

DataVO 객체에 선언된 name과 age에 값을 넣어줍니다.

 

콘솔을 통해 잘 들어간 것을 확인할 수 있습니다.