[Spring] Controller 컨트롤러의 파라미터 수집기능

Spring

 

Spring Controller의 파라미터 자동 수집기능


URL에서 넘긴 파라미터 이름과 매개변수의 이름을 똑같이해서 받을 수 있다.

// 요청 URL http://localhost:8080/chulsu?name=철수 
@GetMapping("/chulsu")
public String getChulsu(String name) {
	
	log.info("name : " + name);
	return "chulsu";
}

위와 같이 페이지에서 파라미터를 넘겨받을 때 파라미터 이름과 매개변수의 이름을 동일하게 할 경우 자동으로 값이 할당 된다. ( name = 철수 )

 

 

넘어오는 데이터의 알맞은 형태의 VO를 사용한다면 VO객체를 매개변수로 받아서 사용할 수 있다.

@Component
public class Human{
	String name;
	int age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

위와 같은 VO가 있을 때 파라미터의 이름이 동일하게 name과 age라면 위의 VO객체만 매개변수로 받아서 값을 사용할 수 있다.

// URL 요청 http://localhost:8080/chulsu?name=철수&age=20
@GetMapping("chulsu")
public String getChulsu(Human human) {
	
	log.info("name : " + human.getName());
	log.info("age : " + human.getAge());
	
	return "chulsu";
}

URL에서 파라미터 이름과 값을 넘겨준다.  ->  해당 VO를 매개변수로 선언 -> 데이터 타입과 알맞는 형태로 VO의 필드에 넣어줌(형변환 자동) -> 해당 클래스의 getter를 통해 꺼낼 수 있다. 




파라미터와 다른 이름의 변수에 값을 할당할 수 있다.

@RequestParam을 사용한다.

// URL 요청 http://localhost:8080/chulsu?name=철수
@GetMapping("chulsu")
public String getChulsu(
    @RequestParam("name") String human_name){ //파라미터 name을 human_name에 다시 할당한다
	log.info("name : " + human_name);
    
    return "chulsu";
}

 

 

체크박스 같은 중복값은 ArrayList로 받을 수 있다. 단  이름이 같아도 매핑을 해야 한다.

// URL 요청 http://localhost:8080/chulsu?taste=단맛&taste=짠맛&taste=신맛
@GetMapping("chulsu")
public String getChulsu(@RequestParam("taste") ArrayList<String> taste) {
	log.info(taste);
	
	return "chulsu";
}

 

댓글

Designed by JB FACTORY