2011-10-05 4 views
2

자바 클래스에서 만든 문자열 배열에 액세스하려고합니다. 문자열 배열은 같은 키를 사용하여 'notSelected'라는 이름으로 Map에 저장됩니다.Apache Velocity 액세스 Java 코드로 작성된 문자열 배열?

나는 또한 사용하여 하나의 문자열 내가 쉽게 액세스 할 수있는 동일한지도에 저장 'TestString에'라는 개체와 디스플레이가 있습니다

$testString

그러나 내가 어떻게 문자열 배열 객체에 접근 가야합니까를 (notSelected)를 속도 템플릿 객체 안의 Map에서 가져 옵니까?

나는 시도했다 :

$notSelected.get(0)
$notSelected[0]
$notSelected.[0]
${notSelected}.get(0)

지난 3는 문자열 배열 객체의 메모리 위치의 참조 값을 반환하는 것하지만 난 아직 할 수 없습니다 배열 내부의 값에 액세스하십시오.

도움이 되었으면 좋겠습니다.

public Map<String, Object> getVelocityParameters 
     (final Issue issue, final CustomField field, final FieldLayoutItem fieldLayoutItem) { 
    final Map<String, Object> map = super.getVelocityParameters(issue, field, fieldLayoutItem); 
    String[] notSelected = {"foo", "bar", "baz"}; 
    map.put("notSelected", notSelected); 

    String[] selected = {"foo", "bar", "baz"}; 
    map.put("selected", selected); 

    //this code works and i can access $testString in the velocity template 
    String testString = "Test Worked"; 
    map.put("testString", testString); 

    return map; 
} 
+0

속도 컨텍스트에 넣는 의사 코드를 추가 할 수 있습니까? 네가하는 말을 잘 모르겠다. –

+0

그지도는 컨텍스트에 넣어 지거나 템플릿에 어떻게 노출됩니까? –

+0

그지도는 문맥에 있습니다. 그래서 내가 인쇄 할 수있는 'testString'변수를 출력 ...하지만 또한 문자열 배열에 액세스하고 싶습니다 ... 예를 들어 어떻게 자바에서 템플릿에서 작동하는 notSelected [0]에 액세스 할 것이라고? 감사합니다. Dave – davey1990

답변

2

JIRA가 배열에 액세스하는 배열 인덱스 표기법을 지원하지 않는 속도의 이전 버전을 사용하여 여기에

감사

는 자바 코드입니다. 대신, List.get(n) 표기법을 사용

List foo = new ArrayList() {{ add("hi"); add("there"); }}; 

$foo.get(0) 
$foo.get(1) 

을, 당신은 (누군가가 질문을 때, 이유가있을 수 있습니다 큰 차이를 만들 수 있습니다에서 운영하고있는 환경과 같은 정보의 작은 맛있는 가벼운 음식을 기억)

+0

데이브 감사합니다. 그게 효과가있어 :) – davey1990

+0

차갑다. (나는 그들이 왜 구 버전을 사용하는지 궁금하다. 내가 기억한다면, 나는 물을 것이다.) –