Liferay 6.1开发学习(三):Portlet简述
在上一篇文章里面介紹的那個Portlet是在創建工程時默認創建的Portlet頁面,可以對Portlet有一個大概的認識,但是很難全面。本篇文章對于Liferay中基于MVC的Portlet創建做一個相對詳細的描述。
一、Portlet是什么?
Portlet是基于java的web組件,由portlet容器管理,并由容器處理請求,生產動態內容。Portals使用portlets作為可插拔用戶接口組件,提供信息系統的表示層。作為利用servlets進行web應用編程的下一步,portlets實現了web應用的模塊化和用戶中心化。 portlet規范,即jsr(Java Standardization Request )168/268,是為了實現portal和portlet的互操作。它定義了portlet和portlet容器之間的和約,讓portlet實現個性化、表示和安全的api集。規范還定義了怎樣在portlets應用中打包portlets。(引自百度百科:http://baike.baidu.com/view/58961.htm)
Liferay是portlet規范的實現,對于portlet規范實現的主流產品還有IBM、Oracle等的Portal產品,主流產品的詳細可以參看:http://www.huqiwen.com/2012/06/11/what-is-liferay/?此篇文章中關于Liferay市場地位處的圖片。很以很多時候我們將Liferay稱為一個Portal容器,也就是一個提供Portlet運行的環境。
二、創建一個Portlet
1、基于上一節的Study這個portlet工程的基礎。點擊Liferay IDE上的liferay工具欄,有三個按鈕,點擊中間按鈕,New Liferay Portlet。如下圖,點擊下一步。
Portlet plugin project:這里選擇要創建的portlet屬于哪個插件工程。
Source folder:類的放置位置,一般默認。
Portlet Class:要創建的Portlet的控制類的名稱,可以將此類看作Struts中的Action類。
Java package:包名。
Superclass:選擇要繼承哪個類。一般默認,也就是MVCPortlet。下面這幾個類的關系如下:MVCPortlet是LiferayPortlet的子類,LiferayPortlet是GenericPortlet的子類。在MVCPortlet中封裝了一些方便開發的方法,所以一般使用MVCPortlet,如果有特殊需求可以使用他們的父類。
2、在此步驟看到的是Portlet的相關信息,如模式,JSP位置等,此步驟是portlet.xml文件的可視化編輯,此步驟的所有選項都可以通過編輯portlet.xml完成。點擊下一步。
Porltet Info:這里顯示的是Porltet的名稱,顯示名稱,標題等。一般默認,不需要修改。
Portlet Modes:這里是portlet的模式,View、Edit、Help這三種模式,是portlet規范里面定義的。
Liferay Portlet Modes:看名知義,Liferay Portlet模式。一般默認即可。Portlet默認的三種模式,Liferay認為不能滿足實際的需求,所以又新增了這幾種模式。如果選擇多個模式,就可以在portlet的設置里面看到,可以通過設置進行切換,方便進行一些特殊需求,如:config可以用來開發可配置Porltet,管理員可以為指定的Portlet定制相關的參數等。
JSP folder:JSP的存放位置,一般默認的命名是html/porltet名稱,一般默認即可。html是相對于docroot的,完整路徑是docroot/html/demo/view.jsp。
Create resource bundle file:綁定資源文件,主要是國際化。如果想要porltet的名稱是中文的,測必須使用資源文件,liferay推薦工程中的所有文字描述類的內容都使用資源文件來定義,這樣方便國際化,也能避免出現一些可能的亂碼問題。這里先不選,后面詳講國際化。
3、此步驟是Liferay-portlet.xml和liferay-display.xml的可視化編輯。點擊完成即可。
Icon:此portlet的圖標。
Allow mutiple instaces:是否允許在同一個頁面中有多個porltet的實例,默認為否。
CSS:當前porltet的自定義CSS。一般默認。
JavaScript:當前portlet自定義JS。一般默認。
CSS classname:當前portlet的命名空間,防止CSS和其他porltet沖突。
Category:當前的portlet,顯示在哪個分類下面,這里是Liferay-display.xml文件的可視化編輯。
三、MVCPortlet的簡單使用
可以看到在工程的com.huqiwen.study包下面生成了一個Demo的java文件,如果只是讓portlet顯示/html/demo/view.jsp里面的內容,則不需要在Demo.java文件里面添加內容。如果需要讓view.jsp后從臺初始化一些信息,則需要重寫doView文法。view模式顯示時調用doView方法,edite模式顯示時調用doEdite方法,config模式顯示時調用doConfig方法,依此類推。
在此大部分情況下可以將renderRequest當然HttpServletRequest使用。如果要轉換可以通過PortalUtil.getHttpServletResponse(portletResponse)來進行轉換。
可以使用renderRequest.setAttribute(arg0, arg1)方法,在前臺頁面通過JSTL等進行取值。
這里不詳述,和普通的WEB程序基本一樣。
四、其他
在二里面創建的內容都可以通過修改portlet.xml,liferay-portlet.xml,liferay-display.xml等來進行修改調整。創建向導包含的只是一些最通用的內容,一些高級的參數還需要通過修改porltet.xml和liferay-portlet.xml來完成。
通過向導默認porltet的view展現的JSP命名為view.jsp。此名稱可以在docroot下面修改成相應的內容,實際開發中建議命名中和業務相關的,方便后期查找識別,如用戶的可以命名成userView等,修改名稱的同時需要修改Porltet.xml里面init-param對應的名稱,否則會出現找不到頁面的情況。
轉自:http://www.huqiwen.com/2012/09/03/liferay-6-1-development-study-3-portlet-explicate/
總結
以上是生活随笔為你收集整理的Liferay 6.1开发学习(三):Portlet简述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智慧农业科研成果汇总
- 下一篇: Flask的endpoint的理解