<form:form>태그
form 태그를 사용하는 이유는 객체 생성을 해서 필요한 값들을 객체 필드에 저장함으로 CRUD 를 용이하게 할 수 있다.
1. form 객체를 생성한다.
ex) loginForm.java
public class LoginForm {
private String userid;
private String password;
private String password_confirm;
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword_confirm() {
return password_confirm;
}
public void setPassword_confirm(String password_confirm) {
this.password_confirm = password_confirm;
}
}
2. jsp 상단에 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 를 추가하고 아래 예시와 같이 객체에 담을 값을 form태그 안에 둔다.
ex)LoginForm.jsp
(1)model을 이용해서 값을 담을 경우
<form:form modelAttribute="loginForm" id="loginForm" name="loginForm" action="/login_check.do" method="post">
<input type="text" name="userid" placeholder="사용자 아이디" required>
<input type="password" name="password" placeholder="비밀번호" required>
<input type="submit" value="로그인">
</form:form>
(2)path를 이용해서 값을 담을 경우
<form:form id="loginForm" path="loginForm" name="loginForm" method="post" onsubmit="return login.loginCheck();">
<input type="text" name="userid" placeholder="사용자 아이디" required>
<input type="text" name="password" id="password" value=""/>
.
.
.
</form:form>
3. 컨트롤러에서 form 객체를 활용해서 값을 가져올 수 있다.
(1) model을 이용해서 값을 담을 경우
@RequestMapping("/login_check.do")
public ModelAndView loginCheck(HttpServletRequest request, @ModelAttribute("loginForm") LoginForm form) {
ModelAndView mav = new ModelAndView();
String userid = form.getUserid();
String password = form.getPassword();
LoginForm islogin = userService.loginCheck(userid,password);
if(islogin == null) {
mav.setViewName("login");
return mav;
}
mav.setViewName("board");
return mav;
}
(2) path를 이용해서 값을 담을 경우
참고: https://offbyone.tistory.com/325