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中插入对应记录