當前位置:編程學習大全網 - 源碼下載 - 如何在apache2下配置liferay

如何在apache2下配置liferay

Liferay的Portlet Configuration頁面,都有幾個固定的Tab頁,比如“權限”,“導出導入”等,這些是在什麽地方定義的呢?

我們知道,portal/render_portlet.jsp負責界面上壹個portlet的解析功能,包括這個portlet再編輯模式下的最大、最小、配置、外觀等MODE的實現。

仔細分析壹下這個頁面,點擊壹個portlet的configuration按鈕時,執行的邏輯如下:

if (Validator.isNotNull(portlet.getConfigurationActionClass())) {

urlConfiguration.setParameter("struts_action", "/portlet_configuration/edit_configuration");

}

else {

urlConfiguration.setParameter("struts_action", "/portlet_configuration/edit_permissions");

}

就是如果再portlet的配置信息中(Liferay-portlet.xml)中包含了configuration的信息,那麽就執行edit_configuration action, 也就是再配置頁面中包含客戶化的portlet配置信息的頁面(configuration.jsp),具體如何實現,我們稍後分析。如果沒有客戶化的信息需要定制,那麽,我們就可以通過壹個標準的配置實現edit_permissions來實現。這裏面只有權限、導入導出等通用的設置功能。

再Portlet Configuration這個Portlet下,如何調用其他Portlet的Configuration.jsp, 這個就需要查看EditConfigurationAction裏定義了。代碼如下:

try {

portlet = getPortlet(req);

}

catch (PrincipalException pe) {

}

ConfigurationAction configurationAction = getConfigurationAction(portlet);

if (configurationAction != null) {

configurationAction.processAction(config, req, res);

}

看到了吧,這裏首先獲取是對哪個Portlet進行Config的,獲取其ConfigurationAction(統壹的Interface),然後調用其processAction方法。

而在顯示jsp頁面時,根據定義執行了edit_configuration.jsp,分析其源碼可以知道,這個頁面引入了tab1.jsp, tab2.jsp兩個頁面。

<liferay-util:include page="/html/portlet/portlet_configuration/tabs1.jsp">

<liferay-util:param name="tabs1" value="setup" />

</liferay-util:include>

默認的tab選項是setup頁,也就是妳編寫的configuration.jsp所在的那個tab。在tab2.jsp中對這個Tab進行了詳細的定義:

// Configuration

PortletURL configurationURL = renderResponse.createRenderURL();

configurationURL.setWindowState(WindowState.MAXIMIZED);

configurationURL.setParameter("struts_action", "/portlet_configuration/edit_configuration");

configurationURL.setParameter("redirect", redirect);

configurationURL.setParameter("returnToFullPageURL", returnToFullPageURL);

configurationURL.setParameter("portletResource", portletResource);

configurationURL.setParameter("previewWidth", previewWidth);

註意:上面的portletResource就是妳自己的Portlet的portletId,通過這個portletId才能讓EditConfigurationAction獲知這個被配置的Portlet的ConfigurationActionClass.

<liferay-ui:tabs

names="current,archived"

param="tabs2"

url0="<%= configurationURL.toString() %>"

url1="<%= archivedSetupsURL.toString() %>"

/>

  • 上一篇:ajax怎麽提交帶文件上傳表單
  • 下一篇:為什麽 PHPer 應當學習 Golang
  • copyright 2024編程學習大全網