2012-11-11 55 views
0

我有一個屬性對象調用ixlTest具有map。這張地圖擁有另一張地圖,我需要在我的頁面的模板文件中綁定後者的對象。相當複雜的對象圖。本地tapestry5 v5.3.6地圖結合

基本上,我想這樣做:

ixlTest.parameterGroups{'testOptions'}{'serverIp'}.value 

ixlTest是在我的網頁 parameterGroups一個屬性對象是ixlTest一個成員變量。這個變量是一個mapparameterGroups與關鍵testOptions的條目,其中有另一個map與關鍵serverIp它是有一個名爲value,我需要我的模板文件中的綁定變量的對象。

我需要使用該並沒有其他圖書館的掛毯的原生支持,我也不必使用方法抽象操作,因爲我經歷過這條道路,這是非常低效的。

謝謝。

回答

1

有些時候,它只是更好地把這種用Java(或Groovy或Scala等)的代碼頁和參考,從模板上。

Tapestry的屬性表達式語法不具備取消引用映射操作;但你可以調用get()方法...但Tapestry能夠找出泛型的限制,這意味着你可能會收到關於缺少屬性的錯誤。在類

public String getTextValue() { 
    return ixlTest.getParameterGroups().get("testOptions").get("serverId").getValue(); 
} 

我想這個代碼爲:

value="testValue" 
模板

,和。

既然你可以在飛行中改變Java代碼,這往往不是把複雜的表達式到模板更好;在Java端進行重構可能會破壞模板內部的複雜表達式,而IDE不知道它們。