-
Spring MVC - 커맨드 객체(Command Object)Spring/Spring MVC 2021. 12. 26. 21:19728x90반응형
커맨드 객체(Command Object)
- 커맨드 객체는 HttpServletRequest 객체에 자동으로 담기고 jsp로 전달된다.
- 커맨드 객체에 이름을 정해주지 않으면 HttpSevletRequest 객체에 저장되는 이름은 클래스의 이름으로
저장되고, 이름을 정해주면 해당 이름으로 HttpSevletRequest 객체에 저장된다
커맨드 객체 이름을 정해주지 않을 경우
커맨드 객체 이름을 정해주지 않으면 자동으로 클래스 이름으로 설정이 된다. (단, 첫 글자는 소문자로 바뀐다.)
inde.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'> data1 : <input type='text' name='data1'> data2 : <input type='text' name='data2'> <button type="submit">확인</button> </form> </body> </html>
testController.java
@Controller public class testController { @PostMapping("/test1") public String test1(DataBean bean) { return "test1"; } }
public String test1(DataBean bean) {
- @ModelAttiribute 생략 됨
- 데이터를 주입받는 DataBean의 이름을 정해 주지 않았으므로
자동으로 dataBean으로 HttpServletRequest에 저장된다.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> <h1>test1</h1> <h3>${requestScope.dataBean.data1 }</h3> <h3>${requestScope.dataBean.data2 }</h3> </body> </html>
requestScope.dataBean.data1
- request 영역에 dataBean으로 저장되어있으므로 JSP에서 데이터를 추출할 때 다음과 같이 작성한다.
- 스코프영역.객체명.프로퍼티명
커맨드 객체 이름을 정해줄 때
inde.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='test2' method='post'> data1 : <input type='text' name='data1'> data2 : <input type='text' name='data2'> <button type="submit">확인</button> </form> </body> </html>
testController.java
@Controller public class testController { //이름을 지정해주면 해당이름으로 request에 담긴다. @PostMapping("/test2") public String test1(@ModelAttribute("testData") DataBean bean) { return "test2"; } }
public String test1(@ModelAttribute("testData") DataBean bean) {
- 데이터를 주입하는 DataBean의 이름을 testData로 정해 주었기 때문에
HttpServletRequest에 testData 이름으로 저장된다.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> <h1>test2</h1> <h3>${requestScope.testData.data1 }</h3> <h3>${requestScope.testData.data2 }</h3> </body> </html>
requestScope.testData.data1
- request 영역에 testData으로 저장되어있으므로 JSP에서 데이터를 추출할 때 다음과 같이 작성한다.
- 스코프영역.설정된객체명.프로퍼티명728x90반응형'Spring > Spring MVC' 카테고리의 다른 글
Spring MVC - form 속성 - form, button, hidden, input, textarea (0) 2021.12.27 Spring MVC - 폼 커스텀 태그(Form Custom Tag) (0) 2021.12.26 Spring MVC - JSP에 데이터 전달 (0) 2021.12.26 Spring MVC - @ModelAttribute : 객체로 쿼리 파라미터 바인딩 (0) 2021.12.26 Spring MVC - 쿼리 파라미터(Parameter) 전달(요청 파라미터 주입받기) (0) 2021.12.25