-
Form 요소1웹페이지 제작을 위한 스프링공부 2020. 5. 4. 14:05
1.Form 커스텀 태그를 사용하면 사용자 입력폼을 만들 수 있다.(사용자 입력폼을 그냥 만드는 것이 아닌 request영역에 담겨서 넘어오는 객체에 셋팅되어져 있는 다양한 값들을 form요소(input tag)등에 바인딩 시켜서 만들 수 있음)
2.주로 정보 수정 페이지를 구성할 때 사용.
form 태그들과 속성 사이트
https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/spring-form-tld.html
Form태그란
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <a href='test1'>test1</a> <form:form></form:form> </body> </html>
다음과 같이 Form태그에 아무것도 기입하지 않고 선언만 해두었다
그후 본 페이지의 페이지 소스 보기를 실행시켜본다
그럼 위와 같이 기입하지 않은 태그 속성들이 저절로 기입되어져 있는것을 볼 수 있다.
form태그는 이러한 역활을 저절로 수행해준다
modelAttribute
request영역에 저장되어 있는 객체의 이름을 model attribute에 셋팅해주면 그 이름이 id속성으로 설정되기도 하고 그 객체안에 들어가있는 값들이 form태그의 input속성에 자동으로 기입된다.
action
요청할 주소 설정
method
요청 방식 설정
Form:hidden 태그
hidden 태그는 주로 사용자에게 노출시키지 않고 개발단에서 특정 정책에 의해 액션을 취할때 사용
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>test1</h1> <form:form modelAttribute="dataBean" action='result'> <form:hidden path="a1"/> <form:button disabled="true">확인 버튼</form:button> </form:form> </body> </html>
modelAttribute에 dataBean이 들어가있다 이때 위와 같이 path를 a1으로 지정해주면 medelAttribute에 저장된 객체에 들어가 있는 a1에 들어있는 값을 주입시켜줌(정확하게는 dataBean의 geta1 메소드를 호출하여 반환하는 값을 주입해주는 원리)
package kr.co.softcampus.beans; public class DataBean { private String a1; public String getA1() { return a1; } public void setA1(String a1) { this.a1 = a1; } }
package kr.co.softcampus.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import kr.co.softcampus.beans.DataBean; @Controller public class TestContoller { @GetMapping("/test1") public String test1(DataBean bean) {//modelattribute를 생략시 dataBean란 이름으로 request에 저장됨 bean.setA1("data1"); return "test1"; } }
a1에 data1이라는 값을 넣음
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>test1</h1> <form:form modelAttribute="dataBean" action='result'> <form:hidden path="a1"/> <form:button disabled="true">확인 버튼</form:button> </form:form> </body> </html>
실행후 위 jsp의 페이지 소스보기를 실행하면 아래 사진과 같이 다음과같이 개발자가 입력하지 않은 태그 속성들이 자동 기입되며 value값에 data1이 잘 기입된걸 볼 수 있다.
Form:input 태그
Form:password 태그
Form:textarea 태그
설명란 같은 긴 글을 작성할때 사용하는 태그
'웹페이지 제작을 위한 스프링공부' 카테고리의 다른 글
redirect forward (0) 2020.05.04 Form 요소2 (0) 2020.05.04 form 태그 (0) 2020.05.03 커맨드 객체 이용하기 (0) 2020.05.02 viewResolver (0) 2020.05.02