무너지지않는 젠가 2024. 6. 14. 14:21

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