http://blog.csdn.net/smilingleo/article/details/1933541
一、JSP中如何使用Tab
Liferay的jsp頁面中,如果用了tab的選項,則tab1爲第一層,tab2爲第二層,tab3爲第三層,從上到下,爲父子關係。
如何開發一個帶選擇框的列表應用?
1、建立數據庫模型(廢話)
2、建立dao及相關portlet.service服務框架,接口和Util
3、實現服務接口;
4、開發對應的JSP頁面;
5、開發相應的Action;
6、在liferay中進行配置Portlet
這裏重點說一下如何開發JSP頁面的內容。
頁面一:初始化頁面init.jsp
引入需要的包,類以及一些初始化工作;
頁面二:查詢、顯示頁面 view.jsp, search.jsp,search_contents.jsp
可以根據group, article name進行查詢,查詢結果在同一個頁面中顯示,用帶選擇框的列表。
二、內置Portlet
有一些Portlet是內置的,並沒有在liferay-display.xml中配置進行顯示,但是卻會被其他Portlet引用,比如:ID:87, Layout Configuration; ID 88, Layout Management; ID 90:, Portal; ID 92:Messaging, ID 103:Tags Compiler, ID 113:Portlet CSS
三、如何自動生成初始化數據?
在系統中,通過一些系統變量的設置,以及VM模板的應用,可以通過DBBuilder來產生默認的系統初始化數據SQL,具體請參見DBBuilder, DBUtil.buildTemplate(), evaluateVM()的實現,以及portal-data-sample.vm
四、如何實現客戶化定製查詢?
portal-impl/classes/custom-sql/default.xml中定義自定義查詢的SQL列表,具體哪個模塊有對應的xml做定義,比如journal.xml,<sql id="查詢類的查詢方法">
五、數據結構分析
liferay中每個page(layout)的界面順序是通過layout表的priority,layoutId, parentLayoutId字段來確定的。
organization_表中存儲組織和場所,通過location=0 or 1來區分是組織還是場所;
usergroup 存儲用戶組,user group與community, organization, locations不同,僅僅是用來做實現管理的便捷性。比如,將用戶分組,然後對這個組進行分配角色,這樣所有組中的用戶就都有了該角色,在數據庫存儲中,通過usergrouprole的關聯,與users_roles並列。
group_表中存儲communities, organizations, user
role_表存儲所有角色,其中type_ = 1表示是常規角色, type_=2表示是communities角色
account_ company_ 一起保存instance中存儲的數據;
user_表和contact_表:如果是自己註冊的用戶(或者系統自帶的默認用戶),則user_.userid = contact_.contactId - 1;如果是管理員創建的 contact_.userid = 創建人id;因此從另外一個角度來說,創建用戶的步驟應該是先在user_表中創建記錄,然後再到contact_表中插入;
用戶註冊,如果指定了一個組織的話,則會在註冊時users_orgs中插入對應記錄