從傳統的 web application 換到 portlet,彈出視窗的應用,應該是大多數開發者會遭遇到的問題。
最近解決了一個問題如下:
透過 render url,以另開新視窗的方式(這個新開的視窗,就是完全沒有任何工具列的那一種),進到 portlet 的 solo mode,再一次 refresh (包含按F5)這個新開的視窗,是不會出現 Theme 的內容的,這樣很 OK。
但是透過 action url,以相同的方式去操作,會發現再一次 refresh (包含按F5)這個新開的視窗後,Theme 就會顯示出來了。
同樣的,如果你是在一個列表頁上面,提供每一筆資料都開啟一個新視窗的話,通常在第二筆資料開啟的時候,Theme 也會顯示出來。
這就很不 OK 了。
User 是不會管你今天用哪一種技術去實作一個系統的,User 只在乎現象是否正確。
會造成的問題的原因是,WebSphere Portal 預設是不考慮一個相同的 action url 會被重複的執行的。
因此要解決這個問題,就必須在 JSR286 Portlet 的 portlet.xml 加上:
<init-param> <name>wps.multiple.action.execution</name> <value>true</value> </init-param>
每一個需要用到 action url 新開視窗的 Portlet 都要加上。
Add comment