Spring MVC - 커맨드 객체(Bean 객체를 통한 전달)
2020. 9. 8. 20:59ㆍJava/Spring
반응형
커맨드 객체
- 클라이언트가 전달해 주는 파라미터 데이터를 주입 받기 위해 사용하는 객체
- 커맨드 객체는 HttpServletRequest 객체에 자동으로 담기고 jsp로 전달된다.
- 이 때, HttpServletRequest 객체에 저장되는 이름은 클래스의 이름으로 결정된다.
index.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>
<form action="test1" method="post">
<input name="data1" />
<input name="data2" />
<button type="submit">확인</button>
</form>
</body>
</html>
커맨드객체
public class DataBean {
private String data1;
private String data2;
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
public String getData2() {
return data2;
}
public void setData2(String data2) {
this.data2 = data2;
}
}
Controller 객체
@Controller
public class TestController {
@PostMapping("/test1")
public String test1(@ModelAttribute DataBean bean) {
return "test1";
}
}
HttpServletRequest 객체에 DataBean이 자동으로 담겨서 전달된다.
위 메소드에서 @ModelAttribute는 생략되어도 된다.
test1.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>
data1: ${requestScope.dataBean.data1}
data1: ${requestScope.dataBean.data2}
</body>
</html>
전달 받는 jsp에서 해당 값을 사용 할 때 requestScope에 커맨드객체의 이름으로 값이 전달되는데 이때 커맨드 객체의 첫 글자는 소문자로 시작한다.
위에서 전달되는 커맨드 객체의 이름을 설정 가능하다.
- HttpServletRequest에 저장되는 이름을 지정하고 싶다면 ModelAttribute 어노테이션에 지정하면 된다.
@PostMapping("/test2")
public String test2(@ModelAttribute("testdata") DataBean bean) {
return "test2";
}
위와 같이 저장시 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>
data1: ${requestScope.testdata.data1}
data1: ${requestScope.testdata.data2}
</body>
</html>
반응형
'Java > Spring' 카테고리의 다른 글
Spring MVC - Form 커스텀 태그 요소(1) (0) | 2020.09.09 |
---|---|
Spring MVC - Form 커스텀 태그 (0) | 2020.09.09 |
Spring MVC - ViewResolver (0) | 2020.09.08 |
Spring MVC - 객체를 통한 파라미터 주입 (0) | 2020.09.06 |
Spring MVC - 파라미터 추출 (0) | 2020.09.06 |