包含在擴展庫(Domino 9中的默認設置)中有一個「對象數據源」功能。它非常方便的東西,但我無法找到任何文件。我有一個關於'ignoreRequestParams'屬性的問題......它是什麼意思以及如何使用它?通過啓用這個URL參數可以自動綁定到數據源對象的屬性?XPages擴展庫和對象數據源使用
回答
原始的兩個數據源(Domino Document和Domino View)都支持允許URL查詢字符串參數覆蓋屬性值的行爲。默認情況下,文檔數據源在查詢字符串中查找databaseName
,formName
和documentId
;對於它所發現的任何這些屬性,相應的屬性將被設置爲參數值,而不管該屬性在XSP標記中可能分配了哪些值。
- 如果
requestParamPrefix
屬性被賦予一個非空字符串值,然後將每個 屬性將僅在網址中包含一個匹配相應 參數覆蓋:這種行爲可以通過兩種方式定製指定的前綴加上屬性名稱 - 例如
blog_documentId
,comment_formName
。通過默認 參數(而不是匹配的前綴)提供的值將被忽略。 - 如果
ignoreRequestParams
屬性的計算結果爲true,那麼無論 查詢字符串參數值如何,數據源的屬性都將被URL覆蓋。 默認值此屬性的值爲false,因此如果要確保URL將不會影響影響該實例的屬性值,則必須在特定數據源實例上將其設置爲true。
但是,這種行爲沒有發生在對象數據源中。因此,爲ignoreRequestParams
或requestParamPrefix
屬性設置的任何值都不會影響此類數據源的任何實例的行爲。
或許它一直沒有執行的原因是因爲對象數據源完全是任意的,所以沒有預定義的假設,就是它的任何實例都支持特定的屬性。您可以在數據源實例的createObject
屬性中定義構成用於創建數據對象的業務邏輯的「方法綁定」(SSJS函數或Java方法)。因此,生成的對象可以是任何你想要的,它可以支持你想要的任何屬性,並且確定這些屬性的初始值的邏輯可以是任何你想要的。因此,您可以自由引用該方法綁定中的內部全局變量param
,以在定義數據源的初始狀態時考慮您希望的任何URL參數。
例如,下面的是一個完全有效的方法,對象數據源的一個實例的createObject
屬性綁定:
return {
firstName: (param.get("firstName") || ""),
lastName: (param.get("lastName") || ""),
email: (param.get("email") || "")
};
這將導致你可以將數據綁定組件對象.. 。舉例來說,如果你的var
的數據來源是「登記」:
#{registration.firstName}
對象的每個屬性將有如果URL中包含匹配屬性名稱的參數的默認值。當然,您的邏輯可能遠比這更復雜:使用視圖和關鍵參數(而不是文檔ID)來檢索文檔並加載字段值,根據外鍵標識查詢非Domino數據URL ......這種類型的數據源,天空的極限正好是,因爲事先沒有定義。
- 1. Xpages擴展庫對話框的位置
- 2. xpages擴展庫對話框更新數據表
- 3. Xpages bean vs對象數據
- 4. 的XPages擴展庫無法找到
- 5. 如何卸載XPages擴展庫
- 6. 使用ColdFusion 8數據源擴展ColdFusion 9數據源文件
- 7. 使用JavaScript擴展數學對象
- 8. 開源對象數據庫?
- 9. jquery擴展 - 對象數組
- 10. 擴展數組的對象
- 11. Robospice存儲對象,通過Ormlite擴展數據庫中的ArrayList
- 12. 的XPages sessionAsSigner和Domino數據源
- 13. 數據庫模型和擴展方法
- 14. 擴展類數據庫
- 15. 擴展數據庫類
- 16. 擴展高分數據庫
- 17. .TBL數據庫擴展
- 18. 如何擴展數據庫
- 19. 使用reduce來將源對象的枚舉屬性擴展到目標對象
- 20. JavaScript - 將源對象的屬性擴展爲目標對象使用
- 21. 擴展Symfony2用戶對象
- 22. 如何使用jQuery擴展來擴展json對象?
- 23. HTMLCollection對象擴展?
- 24. Java「擴展」對象
- 25. 擴展JavaScript對象
- 26. 擴展CakeRequest對象
- 27. 擴展DOMElement對象
- 28. 使用Object.create擴展原生JavaScript對象
- 29. 如何使用助手對象擴展Ruby庫
- 30. 使用Cython擴展Python與C++共享對象庫
您可能需要閱讀源代碼 – stwissel 2013-03-08 06:51:34