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 이라고 지정해서 사용하면 된다.