要开始新项目了,使用liferay开发,虽然接触liferay也已经很长时间了,但是还是很糊涂,到底什么是portlet,如何来开发一个portlet,如何让一个java web工程师但是没有接触过liferay的人能够很快的知道在liferay 上面的开发流程,所以简单的研究了一下portlet的开发方式。
所谓portlet以及容器的概念,起初都是遵循JSR 168协议的,liferay也不例外,因为它遵循了这个协议,所以我们在开发portlet时的选择是很多的。
我们知道,在新建liferay portlet时,会让我们选择继承那个Portlet类:
是不是除了继承这几个类,就没有其他开发portlet的方式了吗?其实不是的,我们来看一下这些类的层次结构:
这些类是继承关系,MVCPorlet继承了LiferayPortlet,LiferayPortlet又继承了GenericPortlet,而我们开发Portlet只需要继承这个Genericportlet这个类就可以了,其他两个类不过是加上了liferay自己的一些封装,使我们可以实现一些liferay所特有的功能。
通过寻找,我们发现了还有很多继承了GenericPortlet的类,包括我们所熟悉的Struts2和SpringMVC框架,都有相关的类继承了这个方法,分别是:org.apache.struts2.portlet.dispatcher和org.springframework.web.portlet.DispatcherPortlet,那么简单了,我们在liferay上使用这些框架毫无阻碍了,我们又回到了我们熟悉的开发方式当中来了。
下面有两个分别是liferay-Struts2的demo和liferay-SpringMVC的demo,也是从别人那搞来的,大家看完之后就能明白了,来两段核心portlet.xml中的配置文件给大家看看,代码下面的附件里都有,就不详细说明了:
SpringMVC
Struts2
Portlet链接:http://l4.yunpan.cn/lk/Q8TrffHYKuCNK