반응형

VO를 사용할 때 List Type 을 사용하여 

여러 FormTag를 리스트(배열)로 받는 예제이다.

 

 

 


 

한 Form 에서 전송할 때 보통은 VO 를 하나만 매칭시켜서 Controller 에서 받는다.

 

근데 나는 한 Form 에서 전송하고 Controller 에서 VO 를 리스트로 받아야 하는 경우가 생겼다.

 


 

 

예를 들어

public class NameVO{
 
 private String name;
 
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
}
 
cs

와 같은 VO 객체가 있고

 



 

<form:form commandName="NameVO" name="dataForm" id="dataForm" >
 
<form:input path="name" value="홍길동"/>
 
<form:input path="name" value="김길동"/>
 
<form:input path="name" value="강길동"/>
 
</form:form>
 
cs

와 같은 구조의 FORM 이 있는데

 

이 FORM 을 전송 할 경우

 

그냥 전송해 버리면 NameVO의 Name에는 "홍길동,김길동,강길동" 이 들어있다.

 

split 으로 잘라서 써도 되지만 조금 더 나은 방법으로 아예 List 로 받아버리자

 

public class NameVO{
 
 private String name;
 
 
 
 
 private List<NameVO> nameVOList;
 
 
 
 
public List<NameVO> getNameVOList() {
  return nameVOList;
 }
 
 public void setNameVOList(List<NameVO> nameVOList) {
  this.nameVOList = nameVOList;
 }
 
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
}
 
cs

위와 같이 자신을 참조하는 List 와 getter/setter 를 생성하고

 



 

<form:form commandName="NameVO" name="dataForm" id="dataForm" >
 
<input type="text" name="nameVOList[0].name" >
 
<input type="text" name="nameVOList[1].name" >
 
<input type="text" name="nameVOList[2].name" >
 
</form:form>
 
cs

이와 같이 리스트 번호와 그 리스트에 담을 name값을 정해주면

 

 

NameVO 객체 안에 nameVOList 에 순차적으로 VO 의 name에 담겨있음을 확인할 수 있다. 



출처: https://cofs.tistory.com/84 [CofS]

반응형

'Spring' 카테고리의 다른 글

CharacterEncodingFilter를 통한 UTF-8 한글 인코딩  (0) 2020.12.04

+ Recent posts