스프링에서는 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 등 이해가 필요하므로
차근히 공부해보자
댓글 영역