熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

深入liferay portal核心之一 portlet擴展分析

2013-11-23 19:10:29  來源: Java核心技術 

  JSR規范規定所有Portlet都必須直接地或者間接地實現Portlet接口同時也提供了一個叫GenericPortlet的基類該類繼承了Portlet接口統一定義了可供 Portal 容器識別和調用的方法因此大部分情況下開發人員只需要繼承GenericPortlet這個基類而不必直接實現Portlet接口
    Liferay Portal也是一個支持JSR的企業門戶我們來看看在它的內部是如何擴展GenericPortlet的
    )      它自定義類LiferayPortlet擴展GenericPortlet增加幾個模式如CONFIGEDIT_GUESTEDIT_DEFAULTPREVIEWPRINT
    )      定義class StrutsPortlet擴展LiferayPortlet初始化模式參數並定義了process action的過程在liferay中配置文件portletcustomxml中配置各portlet的一些其中有個很重要的參數是portletclass該參數的值一般是comliferayportletStrutsPortlet表明該portlet是struts portlet
    )      定義類JSPPortlet擴展LiferayPortlet該類在liferay中用不上所以這邊不做研究簡單提一下如果參數portletclass配置的值是JSPPortlet那麼該portlet是JSPPortlet
    )      注意到有個IFramePortlet擴展了StrutsPortlet大家可能就有疑問了為什麼在liferay中有那麼多的portlet單單就它需要擴展StrutsPortlet通過查看該類的源代碼
    view plaincopy to clipboardprint?
    public static final String DEFAULT_EDIT_ACTION = /iframe/edit;

  public static final String DEFAULT_VIEW_ACTION = /iframe/view;

  public void init(PortletConfig config) throws PortletException {

  superinit(config);

  if (ValidatorisNull(editAction)) {

  editAction = DEFAULT_EDIT_ACTION;

  }

  if (ValidatorisNull(viewAction)) {

  viewAction = DEFAULT_VIEW_ACTION;

  }

  }

  public static final String DEFAULT_EDIT_ACTION = /iframe/edit;

  public static final String DEFAULT_VIEW_ACTION = /iframe/view;

  public void init(PortletConfig config) throws PortletException {

  superinit(config);

  if (ValidatorisNull(editAction)) {

  editAction = DEFAULT_EDIT_ACTION;

  }

  if (ValidatorisNull(viewAction)) {

  viewAction = DEFAULT_VIEW_ACTION;

  }

  }可以清楚的知道IFramePortlet定義自身所需要的default action當portlet沒有配置editAction和viewAction的值時在代碼中賦予默認的值
    下面圖示了這個繼承擴展關系

  


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26393.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.