2013-07-02 83 views
0

我試圖從Portlet的doView函數中的參數發送到portal_normal.vm發送參數portal_normal.vm

這可能嗎?我怎樣才能發送和接收它?


很抱歉,但我無法看透的要求做的方式。

在的doView我寫

HttpServletRequest httpRequest = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest)); 
     httpRequest.setAttribute("hola", "hola"); 

而在門戶網站正常我試着用:

#set ($holas =$request.get('attributes').get('hola')) 
#set ($holas2 = $request.getSession().getAttribute("hola")) 

$holas 
$holas2 

但速度只顯示$holas $holas2

回答

0

這聽起來像一個過於具體的計劃顯示一些Portlet之外的信息 - 但也超出了Portlet規範。可能嗎?是。它有限制嗎?是。

我沒有嘗試它,但我認爲你沒有任何保證,在開始評估portal_normal.vm之前,所有portlet的所有渲染階段都已完成。從技術上講,只有在他們實際要渲染完成後才能完成。渲染不允許改變任何狀態 - 並且你暗示你的情況可能會這樣做 - 因爲渲染時會顯示其他內容。

這可能是有道理的,而不是假設你的主題有一些在頁面上可用的DOM元素。然後渲染一些操縱這個DOM元素的javascript。對主題的依賴性是相同的,但如果找不到DOM元素,也可以回到默認呈現狀態。

或者,如果你堅持你的操作模式。你可以嘗試去通過servlet會話(Portlet會話不會幫助),你必須從portal_normal.vm訪問HttpServletRequest的。雖然被警告:訪問HttpServletRequest的是非標準,而不是真正的門戶思維