??? 今天在編寫Jetspeed2的ajax portlet過程中進一步了解到了Jetspeed2中的一些機制:
??? 1、j2是用psml文件中的fragment id來區分的。因為j2之中有緩存,當psml頁面加載后,已經用過的id是不會另外指向其他的portlet類的,若要改變指向只能服務器重啟。同一個頁面之中id相同的portlet,會隨著其他portlet狀態的改變而變。
??? 2、<portlet:namespace>標簽。這個標簽產生一個目前portlet 中唯一的數值。這個標簽應該被
named elements 使用在 portlet 的輸出,例如
javascript 的功能或變量。而
namespacing 就是確認給定的名稱是這個
portlet 唯一的值,是避免名稱重復影響了其他
portal 的 element 以及這一頁的其他
portlets。
在jsp頁面中<portlet:namespace>與psml文件中fragment有著緊密的聯系如:在頁面中取得的js_simplest_15_?? 就對應了? psml之中id為simplest-15的portlet。
??? 3、對于ajax部分,如果直接用XMLhttp的類在jsp頁面之中寫ajax,是不能夠用session來傳遞數據的,因為一個session對于當前頁面只能夠傳遞一次數據,這點不滿足不刷新的要求,我們需要另外編輯一個servlet的類,將字符串之類的數據寫到presponse之中,然后對于頁面這塊的代碼可以直接用document.createTextNode(xmlhttp.responseText);這個javascript代碼寫入了。這樣就可以實現最簡單的ajax應用了。