2009-12-13 5 views
1

을 사용하여 여러 관련 입력 상자를 추적합니다. html 페이지에서 편집해야하는 도메인 개체 목록이 있습니다. 예를 들어, 명령 & 도메인 객체 :봄 mvc

class MyCommand { 
    List<Person> persons; 
} 

class Person { 
    String fname; 
    String lname; 
} 

그럼, 스프링 MVC 태그 라이브러리를 가지고 기대 되는 HTML 생성은 다음과 같이이다 :

<form> 
    <input name="persons[0].fname">&nbsp;<input name="persons[0].lname"><br/> 
    <input name="persons[1].fname">&nbsp;<input name="persons[1].lname"><br/> 
    <input name="persons[2].fname">&nbsp;<input name="persons[2].lname"><br/> 
    ... 
    <input name="persons[n].fname">&nbsp;<input name="persons[n].lname"><br/> 
</form> 

그러나 방법을 볼 수 없습니다 이것을 Spring Form Tag Libraries (Spring 2.5.6을 사용)를 사용하여 표현하십시오. 태그 라이브러리를 사용하여 기존 값을 편집 할 태그에 바인딩 할 수 있도록합니다 (태그가있을 때).

팁이 있습니까?

답변

2

스프링 폼 태그가 컬렉션을 기반으로 전체 목록을 생성하도록하는 방법은 없습니다 (선택 상자의 옵션에 대해이 작업을 수행 할 수 있지만 이는 내가 알고있는 유일한 컬렉션 기반 확장입니다. 의). 그러나 다음과 같이 루프 내에서 스프링 양식 태그를 계속 사용할 수 있습니다.

<c:forEach var="person" varStatus="loopStatus" items="myCommand.persons"> 
    <form:input path="persons[${loopStatus.index}].fname" />&nbsp;<form:input path="persons[${loopStatus.index}].lname" /><br /> 
</c:forEach> 
+0

- 감사합니다. –

+0

@ eqbridges, 확실하게 작동합니까 ??? bean 클래스 인 MyClass.Bean의 'Invalid property'persons [0] ''persons [0] '이 읽을 수 없거나 잘못된 getter 메소드를 가지고 있습니다 : " – Jaikrat

+0

@Jaikrat -이 코드는 여러분이 폼을 바인딩하는 것은'persons ','persons [0]'및'persons [1]'등을 사용하여 할당 될 수있는 콜렉션 인 "persons"를가집니다. 당신의 오류는 이것이 당신의 빈에서 그렇지 않다는 것을 암시합니다. '사람 '재산이 있습니까? 그렇다면 무엇입니까? –