[Spring] Controller 컨트롤러의 파라미터 수집기능
- 웹/Spring
- 2021. 8. 10.
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";
}
'웹 > Spring' 카테고리의 다른 글
[Spring] Controller 컨트롤러 #Model (0) | 2021.08.11 |
---|---|
[Spring] Controller 컨트롤러 #RequestMapping (0) | 2021.08.09 |
[Spring] log4j 로그를 효율적으로 사용 (0) | 2021.08.06 |
[Spring] lombok - VO 클래스를 간단하게 (설치시 에러해결) (0) | 2021.08.05 |
[Spring] JUnit5 반복 테스트 (0) | 2021.08.04 |