2011-10-05 53 views
2

我想訪問我在我的Java類中創建的字符串數組。 字符串數組使用相同的密鑰存儲在名稱爲「notSelected」的Map中。在Java代碼中創建的Apache Velocity訪問字符串數組?

我也有使用稱爲「的TestString」存儲在同一圖中的單個字符串對象,我可以很容易地訪問並顯示:

$testString

但是我如何去訪問字符串數組對象(從速度模板對象內的地圖中選擇)?

我曾嘗試:

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

最後三個似乎返回字符串數組對象的存儲位置的參考價值,但我現在還不能訪問數組內的值。

任何幫助很樂意欣賞。感謝

這裏是Java代碼:

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],這將在Java中的模板中工作?謝謝Dave – davey1990

回答

2

JIRA使用不支持陣列的索引表示用於訪問陣列速度的較舊版本。相反,使用List.get(n)符號:

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

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

記住,就像你在運行可以產生巨大的變化(當有人問一個問題,有可能是有原因的環境信息的小花絮問它;)

+0

謝謝戴夫。這工作:) – davey1990

+0

很酷。 (我想知道他們爲什麼使用舊版本,如果我記得,我會問。) –

相關問題