Web/Servlet && Spring

[Spring] @ModelAttribute 사용법

jinsiri 2019. 8. 25. 12:09

@ModelAttribute을 사용할땐 너무 생소했다.

예를들면 아래 처럼 사용하는 것인데 당최 어떤식으로 동작한다는 건지..ㅎㅎ

//student.jsp에서 값을 입력하면 result.jsp로 전달
@RequestMapping(value="/add/student.do",method=RequestMethod.POST)
public String result(@ModelAttribute Student student, Model model){//ModelAttribute한번더 찾아보기
	model.addAttribute("student", student);
	return "student/result";
}

 

이해를 위해 검색을 해보았더니, 클라이언트(student.jsp)가 전송한 정보와 자바빈의 프로퍼티가 1:1로 바인딩 되는 것이다. @ModelAttribute를 다른말로 커맨드 오브젝트 라고도 불린다.

 

jsp에서는 form 태그를 사용해서 적어주면 각 name속성 값과 자바빈의 변수들이 1:1로 매핑된다.

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%--form태그는 스프링에서 관리되는 태그 --%>
<%--commandName은 어떤 모델을 사용할지 --%>
<form:form method="POST" action="/tok/add/student.do" commandName="student">

 

반응형