8. SpringFramework(스프링 프레임워크) - 커맨드 객체

한승록·2023년 7월 25일
0

스프링 기초

목록 보기
8/9
post-thumbnail
커맨드 객체파라미터를 준비된 클래스로 받는 것으로 보통 DTO형태의 클래스를 매개변수로 합니다.
    public class Ex04DTO {

        private int n1;
        private int n2;
        private int answer;


        public int getN1() {
            return n1;
        }
        public void setN1(int n1) {
            this.n1 = n1;
        }
        public int getN2() {
            return n2;
        }
        public void setN2(int n2) {
            this.n2 = n2;
        }
        public int getAnswer() {
            return answer;
        }
        public void setAnswer(int answer) {
            this.answer = answer;
        }


    }
    <h1>ex04</h1>
    <hr>

	<!-- POST형식으로 Controller 전송 -->
    <form method="POST">
        <p>
            <input type="number" name="n1" min="0" max="10" placeholder="n1">
            +
            <input type="number" name="n2" min="0" max="10" placeholder="n2">
        </p>
        <p><input type="submit"></p>
    </form>

	@PostMapping								
	// <input>의 name과 클래스의 필드 이름이 같아야 한다
	public ModelAndView ex04(Ex04DTO dto) {		
		
		ModelAndView mav = new ModelAndView("ex04-result");
		int n1 = dto.getN1();
		int n2 = dto.getN2();
        
		dto.setAnswer(n1 + n2);
        
		if(dto.getAnswer() == 0) {
			mav.setViewName("redirect:/");
		}
		mav.addObject("dto", dto);
		return mav;
	}
파라미터커맨드 객체 형식으로 매개변수로 받을 때 요건은 다음과 같습니다.
  • 해당 클래스 멤버필드의 명칭과 파리미터 key 값의 명칭 동일
  • setter 메서드의 활성화
이상의 두가지 요건을 갖추어야 제대로 작동하게 됩니다.

해당 조건을 갖추게 되면 커맨드 객체의 형태로 파라미터가 넘어가게되고 이는 JSP(Java Server Page)에서 jsp:useBeanjsp:setProperty가 합쳐진 역할을 단독으로 수행하게 됩니다.
profile
개발 학습

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

유익한 글이었습니다.

답글 달기