我需要從客戶端JavaScript庫調用java bean方法。有沒有辦法從csjs庫調用ssjs?從XPages中的CSJS調用SSJS
這樣的工作在csjs var test =#{javascript:getConfig.getKeyValuesList(「param」)};
我需要從客戶端JavaScript庫調用java bean方法。有沒有辦法從csjs庫調用ssjs?從XPages中的CSJS調用SSJS
這樣的工作在csjs var test =#{javascript:getConfig.getKeyValuesList(「param」)};
您想在分機中使用遠程服務工具。圖書館。這可以讓你在SSJS中定義一個函數並從CSJS中調用它。
這裏有它的討論: http://www.notesin9.com/2014/05/21/tim-explains-json-rpc-codefortim/
有一個古老的NotesIn9視頻是應仍然是非常有效的: http://www.notesin9.com/2011/08/25/notesin9-033-introduction-to-remote-services-in-xpages/
謝謝我將探索此問題 – lense 2014-11-06 15:07:42
你可以做到這一點,你在你的例子表明像
var test = #{javascript:yourBean.getSomething()};
方式
SSJS代碼首先被執行,結果被插入CSJS代碼併發送到客戶端。
這取決於您的使用情況,如果這可以成爲您的解決方案。
你有點變形例
var test = ['#{javascript:getConfig.getKeyValuesList("param").join("', '")}'];
將執行梅索德getKeyValuesList()返回一個字符串列表,。加入()將其轉換爲像「AAA‘‘BBB字符串’,’ CCC」和發送產生的代碼給客戶端的情況如下:
var test = ['aaa', 'bbb', 'ccc'];
問題:SSJS代碼在渲染階段執行(對於內聯CSJS)。要獲得「新鮮結果」,您必須在CSJS庫(http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_events_and_partial_or_full_refresh)中調用部分/全部刷新。 – 2014-11-06 15:46:38
我做到這一點與在予定義與屬性和方法,然後在自定義控制(通常是一個具有用於所述資源對象CSJS庫的組合庫)我添加一個scriptBlock來獲取數據到我的客戶端ob jects。坦率地說,這隻會在頁面加載時發生,但是對於配置數據,比如你似乎正在獲得的配置數據很好。
這裏是你的庫樣本csjs類:
var appConfig = {
param1 : "",
param2 : ""
}
那麼這是腳本塊代碼:
<xp:scriptBlock>
<xp:this.value><![CDATA[
// setup config parameters
appConfig.param1 = '#{javascript:getConfig.getKeyValuesList("param1")}';
appConfig.param2 = '#{javascript:getConfig.getKeyValuesList("param2")}';
})
]]></xp:this.value>
</xp:scriptBlock>
編碼愉快。
只需向David的答案中添加另一個選項,您可以[創建自己的事件處理程序並通過客戶端JavaScript執行該操作](http://stackoverflow.com/a/19580811/1047998)。 – Naveen 2014-11-07 10:18:12
[如何從計算的HTML鏈接調用SSJS函數?](http://stackoverflow.com/questions/19576077/how-to-call-ssjs-function-from-computed-html-link) – Naveen 2014-11-07 10:20:36