实例讲解liferay的portlet开发,spring+hibernate(with db)

 

最近公司想将产品方向转向Liferay,做了两个星期的Liferay研究,写点经验和成果和大家分享下。

 

一,认识

 

学习一个新的东西,往往都不知如何入手,除非这个东西像橘子一样,扒开皮就知道是可以吃的。Liferay确实对开发者来说还是算友好的!从6.0开始提供可eclipse可视化的插件之后就更加的友好,开发一个portlet或者一个hook都只需点点鼠标即可完成,这在官方wiki里面可以找到视频教程,本文提供的是一个常用的开发技术spring+hibernate的演示实例。所使用的都是目前最新的版本。所以新手想学习,可以借鉴下。

 

二,准备环境

 

Liferay的开发需要准备几个东西,第一是运行环境,第二是开发sdk,第三是辅助eclipse的插件。

下载地址:http://sourceforge.net/projects/lportal/files/

 

最近Liferay的更新速度比较快,从6开始之后陆续几天就会有一个新的0.X版本出来。所以你可以选择一个最新版本下载。

liferay的下载包现在都是与server捆绑一起的,所以根据你的开发环境选择不同的server版本。本文默认选择tomcat-bundles版本,

运行环境地址:http://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.0.4/liferay-portal-tomcat-6.0.4.zip/download

SDK地址:http://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.0.4/liferay-plugins-sdk-6.0.4.zip/download

插件安装:(不要问我不会安装)

下载完成后解压各自的zip,得到sdk目录和运行环境目录,因为默认两个目录并没有约定是如何放的,所以你要修改一下sdk目录下build.properties文件中运行环境目录,此处使用tomcat,所以修改大约76行修改为类似下的目录地址:

    app.server.dir=D:/liferay/liferay-portal-6.0.3/tomcat-6.0.26

 

此时运行环境ok,sdk配置完成,再来看看eclipse plugin,安装完成后进入preferences中Liferay选项设置sdk所在目录,如下图设置:


正确安装插件之后,在eclipse的new选项中将出现Liferay选项,如图:


到此开发环境配置完毕!

 

三,开始第一个演示

 

首先新建一个runtime server,打开eclipse的server view,new一个Liferay runtime server,用过的都应该知道,和建立tomcat运行server没啥差别的!

 

再使用上述安装的插件new一个Liferay Plugin project,取个名字:spring-hibernate-portlet-liferay6以表达本demo含义。

 

一个完整的demo项目结构已经创建,这里提示:新建的项目并不会创建者你正在使用的eclipse workspace下面,而是在liferay sdk的portlet目录下,稍后解释。先看看demo的目录结构:

 看到这个项目的图标,大家肯定觉得熟悉,其实建立的就是一个动态web项目,打开项目的Project Facets也可以看到,项目之处了动态网站的特性外还加了一个Liferay Porelt的Facet。其中多出的文件就是WEB-INF下的tld目录和处了web.xml外的其他文件。上图applicationContext.xml是自己手工加的spring的集成文件,并非插件自动创建。

我们需要关心的文件只有两个liferay-porelt.xml和portlet.xml文件。前者是liferay的portlet实现被指配置文件,后者是JSR-168-268的标准文件,使用其他portal产品也是一样少不了portlet.xml。

liferay-porelt.xml是Liferay的配置文件,主要配置portlet的资源,如portlet的图片,css/js等资源;

portlet.xml则主要配置portlet的核心信息,如portlet的国际化资源文件,请求处理实现类。

默认创建之后会将建一个Hello World的Portlet。

下面再来看看如何在此基础建立一个spring+hibernate的portlet。

 

 

四,讲解spring+hibenrte的portlet

 

spring是一个大家熟知的很友好的框架,当然也支持portlet,新版的3.0.X的spring的mvc也是很好用。

首先准备下所需要的包,因为包多,给出列表大家到spring下载包中自己去找:

将找的所有包丢到WEB-INF/lib下:


再使用插件新建一个Porelt,这是不是选择Plugin project,而是选择Liferay Portlet,其中会让你选择所在项目。选择我们刚才建立的项目。建立完成后,我们打开liferay-portlet.xml和portlet.xml文件可以看到配置中会自动新加一组portlet配置。本文只是说明这个开发过程。所以代码是从

http://books.dzone.com/articles/hello-world-portlet-using-Spring-3-portlet-MVC 这个文章中拷贝过来,有关代码详细的解释,大家可以参考此文地址。其中此文所使用代码下载地址:

http://code.google.com/p/portletsinaction/downloads/list

 

上面提到为何项目建立之后会到sdk的portlet目录呢?

因为liferay6.0之前版本的开发都是基于ext开发,6.0统一到了plugin模式。但是依然兼容之前的,在在portlet目录就可以享用sdk所提供的ant方式编译部署打包等一切的便利。

 

大家有兴趣的可以一起讨论拍砖!

 

 

Liferay企业级门户平台开发全攻略 Liferay作为企业级门户平台,其核心交互单元是Portlet。Portlet是一种基于Java规范的Web组件,能够在门户页面中以“窗口”形式呈现内容,并与其他Portlet协同工作。理解Portlet的运行机制不仅是开发定制化功能的前提,更是优化系统性能、实现模块间高效通信的关键所在。本章将深入剖析Liferay中Portlet容器的底层实现原理,结合JSR-286(Portlet 2.0)规范,解析请求生命周期、容器调度策略以及事件驱动模型。 阅读详情

相关推荐

spring portletMVC

spring portletMVC

liferay form 小案例

1 前台页面  ----------------------- 测试 liferay form ------------ 2 后台取数据代码 @ProcessAction(name="export") public void export(ActionRequest actionRequest, ActionResponse action

jianfpeng241241的专栏 777

基于Liferay+Portal技术的校园信息门户研究与实现

基于Liferay+Portal技术的校园信息门户研究与实现

liferay源码修改

 例子,   为注册用户信息(create account)添加字段comanyname,telephone1.在liferay的数据库(ltcncportal)中的user_表中加入companyname varchar,telephone varchar 字段2.把liferay-portal-src-4.3.4导入eclipse下3.把liferay-portal-src-4

Pretender 2474

liferay实现增删改查的源代码

liferay是一个强大的工具,开发者只用写一个持久层的配置文件,改工具就反向生成持久层和业务层的代码.简单说来,工具会自动生成hibernate层和spring层的相关代码,开发者只用关心控制层即可.

liferay开发demo

详细的说明了portlet的开发步骤以及有代码例子,希望能帮助大家。

使用Spring+hibernate完成liferay portlet plugin开发

    本文使用spring集成hibernate完成一个liferay portlet的开发,做为plugin的方式部署到liferay容器当中。提供源代码下载。     版本约束:           Spring 3.0 及以上           Hiberante 3.5           Liferay 6.0及以上    构建基制:           Ant    ...

heweiyabeijing的专栏 244

Liferay6.1 ServiceBuilder增删改查示例 源代码

Service Builder是Liferay IDE(SDK)提供的一种代码生成方案,开发人员只需要编辑一个数据库的实体描述文件,即可根据本XML文件生成Spring层代码、Hibernate层代码、SQL、SQL索引创建文件、Spring和hibernate的配置文件等,可以大提高开发人员的效率。简单说就是根据数据库描述文件,生成service层和持久化层的代码,开发人员只需要关注控制层即可。

构建门户之利刃Liferay Portal系统架构

传送门☞轮子的专栏☞转载请注明☞http://blog.youkuaiyun.com/leverage_1229 1How to AccessProtal(Simple) 用户可以通过传统上网或者无线上网的方式来访问Protal。而开发人员可以通过SOAP、RMI和自定义的通道类来访问暴露给外部调用的API来操作Protal。 2Protal Interfa...

weixin_30568715的博客 250

liferay详细讲解 liferay项目完全讲解

这是本人工作了2年有关liferay中的所有技术详细日记 很珍贵

Liferay Portal 内容管理

Liferay Portal 内容管理

[Liferay]使用Spring MVC开发Portlet应用

开发环境 IDE                    : Liferay Developer Studio Version: 1.6.1.v201212111822 Liferay                : liferay-portal-6.0-ee-sp1 server                : tomcat-6.0.29 plugin sdk           :

Paranoid_Android的专栏 2865

liferay + struts2 + spring + ibatis整合开发案例

liferay + struts2 + spring + ibatis整合开发案例,可以正常运行,供大家参考和学习

在Liferay中使用Hibernate

Liferay是一个开源的portal框架,它目前的基础架构是基于Struts,Spring和Hibernate的。我们在Liferay上开发应用的时候,在需要使用数据库的时候可以方便的使用Spring中提供的对Hibernate的支持。具体步骤如下, 1, 在你的ext开发环境的/ext/ext-web/docroot/WEB-INF/目录下创建classes目录,降hibernate.cfg...

javavsnet 219

Liferay 多文件上传与下载实例

Liferay多文件上传与下载实例,前端包含多文件上传JS,可以动态追加文件,删除文件,还有文件类型与大小验证JS。后端可以批文件上传。 下载可以实现弹出页另存为。避免了Liferay自身下载PDF和图片时在当前页面打开的问题,同时下载时可以多次点击下载的超链接,不用刷新页面。也算是绕开了一个Liferay大的Bug。 本实例的版本是基于:liferay-portal-6.2.10.1-ee-ga1,可能用的版本和亲们不同,但是代码可以复制过去使用。绝对可行!

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2816

Liferay中的第三方组件:数据库持久层 Hibernate

Liferay是个很成功的开源项目,其中用到了大量的第三方组件。 组件列表来自 [url]http://wiki.liferay.com/index.php/Liferay_Dependencies[/url] Hibernate[url]http://www.hibernate.org/ [/url]在liferay中作为数据持久层组件,所有persistence包中都使用hi...

pikachu 310

LEfSe分析避坑指南:如何解决R语言中的常见错误与优化结果可视化

本文提供了R语言中进行LEfSe(线性判别分析)微生物组差异分析的全流程避坑指南。详细解析了从数据格式准备、参数调优(如显著性水平与LDA阈值)、结果可靠性验证到使用ggplot2进行高级可视化的实战技巧,帮助用户规避常见错误,获得更稳健、美观的分析结果。

weixin_29098391的博客 362

Liferay Portal应用之配置-liferay5.1

原文地址:http://zuozheng456.blog.163.com/blog/static/23690056200811229548447/ Liferay Portal缺省只有一个系统管理员用户test,且以用户的电子邮件地址test@liferay.com为登录用户名,密码是test。 Liferay Portal针对不同的用户会展现出不同的服务网页。当浏览Portal主页网址htt...

wall 709

CloudCompare

分割点云:选中要分割的点云文件–>Segment–>左键框出要分割的点或者区域–>Segment Out–>Comfirm Segmentation,原点云文件被分割成两个结构,选中分割出来的remaining,右键delete即可。qSRA (Surface of Revolution Analysis):计算一个点云和一个假定旋转平面之间的距离(旋转平面用2D轮廓定义),距离计算好后,用户可以创建一个偏差的2D图或者圆柱或圆锥的投影。②表现为同样的对象或者至少有同样的形状。

xiaoyaolangwj的博客 4709

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3044
上一篇: 将ExtJs包装成JSF组件的设计思路及过程-Fence
下一篇: 使用Liferay 中 Spring portlet mvc 模式下的Ajax探讨,实例代码分享!
开吢僦ぬ
博客等级 码龄21年 11粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值