2011-08-15 2 views
0

가정하자 내가 가지고 속도 1.5 템플릿에 대한 다음과 같은 형식 지원 객체 :스프링을 사용 속도 템플릿 내부 변수 모음을 결합

public class Bucket { 

    String data1; 
    String data2; 
    String data3; 
    String data4; 

    // getters setters blah blah... 
} 

나는이 네 문자열은 다음 java.util의 속성을 결합하고 싶습니다 하나의 선택 컨트롤 아래 네 개의 드롭 내부 문자열의 .MAP, 내 페이지의 컨트롤러 모델 안에, 내가 지원 객체 "boData", 값지도 "labelKeys을"이름을 경우

"a" : "1" 
"b" : "2" 
"c" : "3" 
"d" : "4" 

, 속도가 결합 할 수있는 지원 객체의 나를위한 속성 :

#springFormSingleSelect("boData.data1" $labelKeys "") 
#springFormSingleSelect("boData.data2" $labelKeys "") 
#springFormSingleSelect("boData.data3" $labelKeys "") 
#springFormSingleSelect("boData.data4" $labelKeys "") 

그러나 #springFormSingleSelect를 4 회 호출하지 않는 방법이 있습니까? 여기에 패턴이 있지만 벨로 시티의 용어로 표현할 수는 없습니다.

예를 들어 버킷 클래스에있는 이러한 4 개의 String 속성을 Java 배열 또는 java.util.List로 정의한 경우 각 클래스에 드롭 다운 단일 선택 컨트롤을 바인딩하는 데 필요한 속도를 어떻게 알 수 있습니까? 목록에있는 요소?

public class Bucket { 
    List<String> dataItems = new ArrayList<String>(); 
    // getter, setter... 
} 

제공 할 수있는 정보에 대해 감사드립니다.

답변

0

:

#foreach($i in [1..4]) 
    #set($field = "boData.data" + $i) 
    #springFormSingleSelect($field $labelKeys "") 
#end 
+0

예. 그게 효과가 있었어. 감사!. Spring이 바인딩하고자하는 객체 프라퍼티를 찾을 수 있도록 인덱스 경로를 파생시켜야했습니다. $ i 반복 인덱스를 사용하면 도움이되었습니다. 예 : 'boData.singleDataItem [$ i] .myProperty' –

0

내가이 질문을 이해하고 있는지 확실하지 않습니다. 하지만 필요한 것은 모두 foreach 루프입니다. Velocity에서 Java를 입력하면 삶이 편하게됩니다.

당신은 같은 것을 할 수있다 그러나 : 당신은 목록과 함께 동일한 작업을 수행 할 수

#set ($map = $myobject.getMap()) 
#foreach ($mapEntry in $map.entrySet()) 
    // $mapEntry.key 
    // $mapEntry.value 
    #springFormSingleSelect("boData.data1" $mapEntry.key "") 
#end 

합니다.

이 정보가 도움이되기를 바랍니다. 감사에 대해 어떻게

4

내가 대답은 분명했다 경우 확실하지 않다. 바인딩 봄 속도를 설명하기 위해 노력하는 것은 당신이 수집 dataItems이있는 경우 그래서, 당신은

#foreach($dataItem in $dataItems) 
     #springFormSingleSelect("dataItem.data1" $labelKeys "") 
    #end 

대신

#set ($end = $dataItems.size() - 1) 
    #foreach($i in [0..$end]) 
     #springFormSingleSelect("dataItems[$i].data1" $labelKeys "") 
    #end 

이것은 바인딩하는 것처럼 바인딩 할 수 #springBind 에 대한 인수로 전체 경로를 필요 컬렉션 항목.