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中插入對應記錄