2014-04-11 170 views
0

我在頁面上有一個表單,其模型爲CompoundPropertyModel。我在這個表格上有一羣孩子。在檢票中從屬性模型獲取屬性表達式

我的目標是創建一個行爲,它可以確定行爲被附加到的對象的屬性表達式(或者如果它具有非屬性表達式會引發異常)。

我試圖在bind方法中這樣做,以防萬一它不能配置,我會趕上這一點。

我只是從組件中提取模型。我正要做一個instanceof,當時我意識到檢索的模型不一定是AbstractPropertyModel,因爲我一直在期待,因爲我正在使用CompountPropertyModel這樣做。

所以我的問題是:是否有一個可靠的方法我能找到一個給定的模型的屬性表達式不知道模型的類型,但知道它是一個屬性模式? (當我說'屬性模型',我的意思是任何基於屬性表達式的模型)

回答

2

在Wicket'知道它是一個屬性模型'意味着它是一個AbstractPropertyModel - 因此您的instanceof檢查應該工作正常。

如果您依靠CompoundPropertyModel隱式初始化模型,那麼它仍然是AbstractPropertyModel。確保在查詢模型之前已將組件添加到提供CompoundPropertyModel的父組件中。

+0

當我說「知道它是一個屬性模式」我還包括的可能性的對象的模型可以是隱式的,從父CompoundPropertyModel例如衍生。從CompoundPropertyModel派生的模型是否也是AbstractPropertyModel? – WiseTree

+1

我發現上述問題的答案是真實的。如果您不介意,我會修改您的答案以包含該特定情況。 – WiseTree