2010-01-20 7 views
4

아래 두 가지와 같은 객체가 있습니다.스프링 바인딩 문제

public class SavedSearch { 
String title; 
ArrayList<SearchParameters> params; 
} 

public class SearchParameter { 
String field; 
int operator; 
String match; 
} 

입력 폼의 JSP 페이지에서

을 사용하고 FormController 내부에서 중단 점을 지정할 때 SavedSearch 객체에 제목이 채워집니다.

하지만 ArrayList는 항상 비어 있습니다. 그것은 내 마음을 읽을 수 없다는 스프링의 잘못이 아니지만 필드, 연산자 및 일치가 매개 변수의 일부임을 어떻게 표시합니까? paramsField, paramsOperator, paramsMatch라는 이름을 지어 봤지만 행운이 없습니다.

이것이 어려운 질문은 아니라는 것을 알고 있습니다 만, 나는 약간 혼란 스럽습니다.

+0

:

몇 가지 예? – delfuego

답변

2

목록을 바인딩하려면 Apache Commons Collections에서 Spring 또는 LazyList의 ArrayList : AutoPopulatingList 대신 특수 래퍼를 사용해야합니다. 그들 사이의 관계가있을 예정이다 - 두 클래스가 완전히 관련이없는

당신이 우리에게 준 것처럼

using LazyList

using AutoPopulatingList

+0

감사합니다. LazyList를 사용하면 매우 도움이되며 Google AutoPopulatingList를 사용하여 바인드를 사용하여 읽습니다. 나는 2.5를 사용하고 있기 때문에 제 바인딩을 보지 않았고, 2.5 이전이었을 것이라고 생각했지만 읽었을 것입니다. –

+0

spring : bind와 form : input을 하나의 JSP 파일에 동시에 사용할 수 있습니다. 그들은 데이터 검증에 매우 유용합니다. –