Spring MVC - Form 커스텀 태그
2020. 9. 9. 20:34ㆍJava/Spring
반응형
홈페이지를 만들다 보면 회원정보 수정, 글 수정 등 기존의 데이터를 가지고 와서 form 태그 안에 정보를 보여줘야 하는 경우가 있다. 이때 일일이 정보를 입력하는 번거로움을 줄이기 위해 Form 커스텀 태그가 존재한다.
전체 사용되는 빈 객체
public class DataBean {
private String data1;
private String data2;
private String data3;
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
public String getData2() {
return data2;
}
public void setData2(String data2) {
this.data2 = data2;
}
public String getData3() {
return data3;
}
public void setData3(String data3) {
this.data3 = data3;
}
}
1. 기존 방식과 동일하게 입력
기존 방식과 동일하게 bean 객체를 가져와 값을 세팅하고 객체를 넘겨서 값을 뿌리는 방식이다.
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(DataBean bean) {
bean.setData1("1");
bean.setData2("2");
bean.setData3("3");
return "test1";
}
}
위 메소드는 자동으로 DataBean 객체를 받아와서 1,2,3 값을 주입하여 request로 test1에 전송한다.
실제 웹 제작에서는 db로부터 값을 select해와서 값을 주입한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="result" method="post">
data1:<input type="text" name="data1" value="${requestScope.dataBean.data1}"/>
data2:<input type="text" name="data2" value="${requestScope.dataBean.data2}"/>
data3:<input type="text" name="data3" value="${requestScope.dataBean.data3}"/>
</form>
</body>
</html>
해당 값을 requestScope를 이용하여 화면에 뿌릴 수 있다.
위 방식은 일일이 값을 지정해줘야 하므로 코드가 길어진다. 위 방식을 Form 커스텀 태그를 이용하여 줄일 수 있다.
2. 커스텀태그 이용
커스텀 태그를 이용하기 위해 jsp 파일에 아래 태그를 선언한다.
<%@taglib prefix='form' uri="http://www.springframework.org/tags/form" %>
그리고 form 태그를 아래와 같이 작성한다.
<form:form modelAttribute="dataBean" action='test2'>
data1 : <form:input path="data1"/><br/>
data2 : <form:input path='data2'/><br/>
data3 : <form:input path='data3'/><br/>
</form:form>
modelAttribute="dataBean" 를 통해서 전달되는 빈 객체의 이름을 정해준다.
해당 빈 객체의 데이터들의 이름을 통해서 값이 넘어온다. 위 코드를 웹에서 확인하면 아래와 같은 코드로 확인이 되는 걸 알 수 있다.
<form id="dataBean" action="test2" method="post">
data1 : <input id="data1" name="data1" type="text" value="1"/><br/>
data2 : <input id="data2" name="data2" type="text" value="2"/><br/>
data3 : <input id="data3" name="data3" type="text" value="3"/><br/>
</form>
빈객체의 이름은 controller에서 @ModelAttribute("새 이름")을 통해서 수정 될 수 있다.
반응형
'Java > Spring' 카테고리의 다른 글
Spring MVC - Form 커스텀 태그 요소(select,checkbox,radio) (0) | 2020.09.09 |
---|---|
Spring MVC - Form 커스텀 태그 요소(1) (0) | 2020.09.09 |
Spring MVC - 커맨드 객체(Bean 객체를 통한 전달) (0) | 2020.09.08 |
Spring MVC - ViewResolver (0) | 2020.09.08 |
Spring MVC - 객체를 통한 파라미터 주입 (0) | 2020.09.06 |