반응형
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 |
---|