프로그래밍/Spring & Spring boot

[Spring / 스프링] @ModelAttribute를 이용하여 파라미터 전달 받기

pupu91 2022. 9. 6. 17:37
반응형

 

@ModelAttribute

: DTO와 같은 모델을 커맨드 객체로 전달 받을 수 있음

  @ModelAttribute의 경우 커맨드 객체를 생성하여 매개변수로 전달해 준 뒤 해당 인스턴스를 model에 담는다.

  폼에서 입력한 값을 다음 화면으로 바로 전달해야 하는 경우 유용하게 사용할 수 있음

  @ModelAttribute("모델에 담을 key값")을 지정할 수 있으며, 지정하지 않으면 타입의 앞 글자를 소문자로 네이밍 함

 

@Controller
@RequestMapping("/first/*")
public class FirstController {

	@GetMapping("search")
	public void search() {}
	
    @PostMapping("search")
	public String searchMenu(@ModelAttribute("menu") MenuDTO menu) {
    			
             return "first/searchResult";
    }
}

 

 

jsp파일에서 호출하여 출력

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<h1 align="center"> Model에 담긴 커맨드 객체의 정보 출력 </h1>
	
	<h3> 메뉴의 이름 : ${ menu.name }</h3>
	<h3> 메뉴의 가격 : ${ menu.price }</h3>
	<h3> 메뉴의 카테고리 : ${ menu.categoryCode }</h3>
	<h3> 메뉴의 판매상태 : ${ menu.orderableStatus }</h3>
	
</body>
</html>

 

반응형