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

相关文章

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl