웹 개발/Java, Spring
@ModelAttribute
jihyeon33
2022. 6. 5. 01:11
1. controller
@Controller
public class TestController{
@RequestMapping(value="/test.do")
public void doTest(@ModelAttribute TestModel testModel){
System.out.println("은행 명:"+testModel.getBankNm());
System.out.println("계좌 번호:"+testModel.getAccountNum());
return "test";
}
}
2. model
@Getter
@Setter
public class TestModel{
private String bankNm;
private Sttring accountNum;
}
3. jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>계좌 목록</title>
</head>
<body>
<h3>${testModel.getBankNm()}</h3> <!--TestModel의 get메소드를 직접 호출-->
<h3>${testModel.bankNm}</h3> <!-- 자동으로 get이 호출되어 변수 접근가능-->
<h3>${testModel.accountNum}</h3>
</body>
</html>
4. @ModelAttribute 요약
1. 객체에 http로 넘어온 값들을 자동으로 바인딩한다. 예) /tes.do? bankNm=국민&accountNum=110234568 => setter를 통해 각각의 변수에 바인딩됨. 2. @ModelAttribute 어노테이션이 붙은 객체가 자동으로 Model 객체에 추가되고 jsp단까지 전달된다. 3. jsp에서는 ${testModel.bankNm} ..이런식으로 사용 가능. ${testModel.getBankNm} => 이런식으로 get메소드를 호출하여 사용 필요 x. |