Spring
Spring - form 커스텀태그 <form:form> 맨위 선언 필수
shika
2022. 1. 22. 16:23
스프링 커스텀태그를 알아보자
먼저 form태그
form태그를 사용하면
html의 form, input 태그를 좀더 쉽게 사용이 가능하다.
예를들어 이렇게 바뀐다
전
<form action="result" method="post">
이름 : <input type='text' name="user_name" value="${requestScope.userDataBean.user_name }"/><br/>
아이디 : <input type='text' name='user_id' value='${requestScope.userDataBean.user_id }'/><br/>
비밀번호 : <input type="password" name='user_pw' value='${requestScope.userDataBean.user_pw }'/><br/>
우편번호 : <input type='text' name='user_postcode' value='${requestScope.userDataBean.user_postcode }'/><br/>
주소1 : <input type='text' name='user_address1' value='${requestScope.userDataBean.user_address1 }'/><br/>
주소2 : <input type='text' name='user_address2' value='${requestScope.userDataBean.user_address2 }'/><br/>
<button type='submit'>확인</button>
</form>
후
<form:form modelAttribute="userDataBean" action="result">
이름 : <form:input path="user_name"/><br>
아이디 : <form:input path="user_id"/><br>
비밀번호 : <form:password path="user_pw" showPassword="true"/><br>
우편번호 : <form:input path="user_postcode"/><br>
주소1 : <form:input path="user_address1"/><br>
주소2 : <form:input path="user_address2"/><br>
<button type="submit">확인</button>
</form:form>
이런식으로 간단하게 사용 가능하다
먼저 가장 먼저해야할것은 jsp 등 사용하는 파일의 맨위에
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
이렇게 선언을 해줘야한다.
컨트롤러는 이런 형태를 지니고 있다.
@GetMapping("/test1")
public String test1(UserDataBean bean) { // @ModelAttribute 생략한거임 !!! 앞으로도 생략할것
bean.setUser_name("홍길동");
bean.setUser_id("abcd");
bean.setUser_pw("1234");
bean.setUser_postcode("12345");
bean.setUser_address1("주소1번입니다");
bean.setUser_address2("주소2번입니다");
return "test1";
}
@GetMapping("/test2")
public String test2(UserDataBean bean) {
bean.setUser_name("홍길동");
bean.setUser_id("abcd");
bean.setUser_pw("1234");
bean.setUser_postcode("12345");
bean.setUser_address1("주소1번입니다");
bean.setUser_address2("주소2번입니다");
return "test2";
}
<form:form modelAttribute="userDataBean" action="result">
처럼 여기에서도 modelAttribute="userDataBean"는
컨트롤러에서
public String test2(UserDataBean bean) 이렇게 해도
bean이라고 사용하는 것이 아닌
타입인 UserDataBean 의 맨앞만 소문자로 바꿔서
userDataBean 이라고 지정해서 사용하면 된다.