2009-06-10 2 views
5

:채우기 컬렉션 나는 양식에서 콩의 목록을 채우기 위해 노력하고있어

내 Struts2 형태 그래서
public class Foo { 
    public String attr1; 
    public String attr2; 
} 

public class Bar { 
    public List<Foo> foos; 
} 

public class StrutsAction extends Action { 
    public Bar bar; 
} 

, 푸를 채울 수있는 가장 좋은 방법은 무엇입니까? 직관적으로 다음과 같이하고 싶습니다.

<input type="hidden" name="bar.foos.attr1" /> 

그러나 작동하지 않아 충돌이 발생할 수 있습니다. 대답은 매우 간단하고 나는 그것을 간과하고 있다고 확신합니다.

답변

12

정확하게 이해한다면 숨겨진 필드마다 다른 이름을 원하십니까? 양식이 제출 될 때 적절한 게터/세터가있는 경우 당신에게

<input type="hidden" name="bar.foos[0].attr1" value="some value" /> 
<input type="hidden" name="bar.foos[0].attr2" value="some other value" /> 
<input type="hidden" name="bar.foos[1].attr1" value="some value" /> 
<input type="hidden" name="bar.foos[1].attr2" value="some other value" /> 

의 동등 제공해야

<s:iterator value="bars" status="key"> 
    <s:hidden name="bar.foos[%{#key.index}].attr1" value="attr1" /> 
    <s:hidden name="bar.foos[%{#key.index}].attr2" value="attr2" /> 
</s:iterator> 

, 그것은 모든 값을 설정해야합니다.

+1

당신은 정확합니다. 나는 단지 적절한 구문 (즉, [0])을 알지 못했을 것입니다. – Droo

+1

감사합니다 ...! 그것은 나를 도왔다 ... (심지어 2 년 후 : - P) –