Liferay研究之十二:对Liferay框架的几点分析总结 收藏

2023-10-29 02:08

本文主要是介绍Liferay研究之十二:对Liferay框架的几点分析总结 收藏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


Liferay
研究之十二:对 Liferay 框架的几点分析总结 收藏

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

这篇关于Liferay研究之十二:对Liferay框架的几点分析总结 收藏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/297533

相关文章

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛