2013-05-24 7 views
3

지도 내지도에 저장 값과 나는이 상황이 내 Action 클래스에서스트럿츠 2 - 나는 현재 스트럿츠 2와 함께 일하고 있어요

: 내 JSP에서

private Map<String, Map<Integer, MyEntity>> map; 

public void setMap(Map<String, Map<Integer, MyEntity>> map) { 
     this.map = map; 
} 

public Map<String, Map<Integer, MyEntity>> getMap() { 
     return this.map; 
} 

을, 나는를 사용 반복자는 다음의 '키'변수를 사용하여지도를 통해 이동 (정수의) 다른 목록을 반복하고 다음과 같이 두 번째지도를 통해 이동이 정수를 사용합니다 : map[${key}][${myInteger}]

<s:iterator value="map" status="status"> 
    <tr> 
    <td>${status.index}</td> 
    <td>${key}</td> 
    <s:iterator value="integersList" id="myInteger"> 
     <td> 
     <s:textfield name="map[${key}][${myInteger}].myEntityAttribute" value="%{map[#attr.key][#attr.myInteger].myEntityAttribute}" id="attr_${key}_${myInteger}" theme="simple" size="10" /> 
     </td> 
    </s:iterator> 
    </tr> 
</s:iterator> 

이를 얻기 위해 이렇게 value="%{map[#attr.key][#attr.myInteger].myEntityAttribute}"

을하지만 변경 사항을 저장하고자 할 때 나는 그것이 작동 할 수 없습니다 : 값은 잘 작동 나 '(이 작업을 수행 할 수없는 경우 name="map[${key}][${myInteger}].myEntityAttribute"

가 내가 뭘 잘못 알고하지 않거나 꽤 확실한 방법이 있어야합니다.), 그러나 나는 일종의 피곤합니다.

정말 도움이 될만한 제안이 있으면 언제든지 환영할만한 답변을드립니다.

+1

답변과 함께이 질문보기 : http://stackoverflow.com/q/15006868/1700321. –

+0

왜 당신은 확실합니까? 그리고 무엇을 시도 했습니까? –

+0

Aleksandr에게 감사의 말을 전하고 OGNL의 한계를 깨달았습니다. 내가하고 싶었던 것은 불가능했기 때문에 다른 길을 찾아야했습니다. – johncol

답변

0

곧 Struts 기본 형식 변환기 인 XWorkConverter으로는 불가능합니다. 그것은 변환을 수행 할 빈 특성을 찾고있다.

컬렉션 변환도 지원되며 나와 같은 컬렉션으로 재생할 수있는 CollectionConverter도 있습니다.

이 목적으로 xwork-conversion.properties에 해당 컬렉션 클래스의 변환기를 구성해야합니다. Struts 변환기에서 사용하는 변환을위한 전역 속성입니다. 이 작업을 수행하지 않으면 Struts 변환기가 ognl.ConvertionNotSupported 예외로 필드를 범프합니다. 당신은 변환 유형에 대한 자신의 형식 변환기를 넣어 그것을 무시할 수 있습니다.

+0

나는 그것을 시도 할 것이다. 정보 주셔서 감사합니다. – johncol