상세 컨텐츠

본문 제목

스프링 <form:form>태그 path 의미와 modelAttribute 설정 예제

카테고리 없음

by shika 2022. 4. 3. 10:28

본문

스프링에서는 form태그를 지원한다.

바로 <form:form>태그이다.

 

기본적인 html태그에서 spring과 연결을 쉽게 만들어주는 코드이다.

 

<form:form action="${root }user/join_pro" method='post' modelAttribute="joinUserBean">
    <div class="form-group">
        <form:label path="user_name">이름</form:label>
        <form:input path="user_name" class='form-control'/>
        <form:errors path="user_name" style='color:red'/>
    </div>
    <div class="form-group">
        <form:label path="user_id">아이디</form:label>
        <div class="input-group">
            <form:input path="user_id" class='form-control'/>
            <div class="input-group-append">
                <button type="button" class="btn btn-primary">중복확인</button>
            </div>
        </div>
        <form:errors path="user_id" style='color:red'/>
    </div>
    <div class="form-group">
        <form:label path="user_pw">비밀번호</form:label>
        <form:password path="user_pw" class='form-control'/>
        <form:errors path='user_pw' style='color:red'/>
    </div>
    <div class="form-group">
        <form:label path="user_pw2">비밀번호 확인</form:label>
        <form:password path="user_pw2" class='form-control'/>
        <form:errors path='user_pw2' style='color:red'/>
    </div>
    <div class="form-group">
        <div class="text-right">
            <form:button class='btn btn-primary'>회원가입</form:button>
        </div>
    </div>
</form:form>

이제 이런식으로 표현 할 수있는데

여기서 password나 errors 는 쉽게 이해할 수 있을것이다.

 

내가 볼때 초보자의 입장에서 가장 주목해야 될 점은 바로

form 태그 첫번째 줄의 modelAttribute 와

내부 <form: > 안에있는 path 값이다.

 

맨윗줄에 modelAttribute가 의미하는 것은 

어떤 컨트롤러에서 커멘드객체를 넘겨주면 modelAttribute태그를 통해

바로 받겠다는 것이다.

 

나는 컨트롤러에서 이렇게 지정을해주었다.

@Controller
@RequestMapping("/user")
public class UserController {
	
	@GetMapping("/join")
	public String join(@ModelAttribute("joinUserBean") UserBean joinUserBean) {
		return "user/join";
	}
}

이렇기 때문에 jsp에서 

<form:form action="${root }user/join_pro" method='post' modelAttribute="joinUserBean">

이 코드를 사용할 수 있는것이다.(@ModelAttribute("joinUserBean") 을 사용했으므로)

 

그리고 path가 의미하는것은 뭐냐면

path는 modelAtrribute를 통해서 보낸 객체의 필드를 의미한다.

public class UserBean {
	private int user_idx;
	private String user_name;
	private String user_id;
	private String user_pw;
	private String user_pw2;
    }

바로 내가 보낸 UserBean의 객체가 이것이므로

path에 user_name이라고 하면 UserBean 객체에 담긴 String user_name 값이

바로 jsp에 전달되어서 출력이 되는 것이다.

 

비밀번호를 뽑고싶으면

<form:password path="user_pw" class='form-control'/>

이것 등으로 사용하면 된다.

 

form:form 태그와 modelAttribute path 등 이해가 필요하므로

차근히 공부해보자

댓글 영역