论坛首页 Java企业应用论坛

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

浏览 13484 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-28  

最近公司想将产品方向转向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方式编译部署打包等一切的便利。

 

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

   发表时间:2010-07-29  
看来摸索liferay的人确实还是少!
0 请登录后投票
   发表时间:2010-08-29  
大哥,我现在正在研究liferay6.0.5,基本的环境已经搭建起来了,小的portletDemo也运行成功,但还没涉及到代码的编写,也不知道怎么去编写代码,看到你也在研究,想请教下大哥下一步该怎么办???
0 请登录后投票
   发表时间:2010-09-06  
您好,我现在和楼上的的一样,也是刚开始接触liferay,现在使用的liferay版本是liferay6.0.5,基本环境也基本搭建好了。我采用的是liferayIDE开发。我在这个环境里面新建了一个ext项目,按照网上介绍的5.2.3的方式做,部署上去之后,启动tomcat,登录liferay之后,看不到我部署的portlet。想请问下这是怎么回事?
0 请登录后投票
   发表时间:2010-09-07  
哈哈!联系我msn吧,wu.arron@hotmail.com
0 请登录后投票
   发表时间:2010-09-28  
Liferay是个好东西,可惜资料太少了,连本书都找不到,真希望<<Liferay In Action>> arrive in China early!
0 请登录后投票
   发表时间:2010-09-29  
呵呵!其实liferay不是个好东西,他的代码毫无价值,我们只能说他实现了个portal而已。学习他就不要看他的源码,否则是害了你!我看了一个方法最长的时候参数个数达到20多个。咋看?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics