参考:http://www.huqiwen.com/2016/05/11/liferay-7-study-2-create-deploy-portlet/
Liferay7.0开发学习(二):创建并部署一个Portlet
Liferay 7开发环境的搭建可以参考上一篇博客:《Liferay7.0开发学习(一):开发环境搭建》
第一步:按着上篇博客的内容,搭建好环境:在做Liferay 7的开发时,需要先创建一个Liferay Workspace Project。
第二步:创建Portlet插件工程,选择New Liferay Module Project。如下图所示:
在这里我们看到Project Template Name,里面有多个选项,这些选项各是什么意思呢?
1、Portlet:创建了个Portlet工程,这里创建的原生Portlet,Portlet类继承自GenericPortlet(这个类是portlet标准提供的),实现的是原生标准。我们一般也不使用,一般在Liferay开始中使用下面的mvcportlet。
2、mvcportlet:这个创建出来的是一个Liferay的Portlet,和上面的区别是Portlet类继承自MVCPortlet,MVCportlet本身继承自LiferayPortlet,LiferayPortlet继承自GenericPortlet。所以mvcportlet这个是Liferay在原生的基础上做一些封装,让我们有些开发更方便。
3、servicebuilder:创建一个数据库服务模块。和之前版本的ServiceBuilder一样。比如我们现在有一个数据库表叫做学生管理,需要有一个学生表,则创建一个servicebuilder,在这里使用xml生成此表的持久化层代码和业务层代码。
4、其他内容,后面博客介绍。
第三步:点击一下步,在这里输入我们的Portlet类的名称和包名,如下图
第四步:点击finish,完成工程的创建,现在在我们的Liferay Workpace里面的Moudles里面找到我们刚才创建的工程。如下图,src/main/java里面是后台处理类,在resource里面放的是语言国际化文件和对应的JSP。
第五步:现在我们做一个操作,从后台传值到JSP,在StudyPortlet里面,我们重写doview类,代码截图如下:
在VIEW JSP的代码如下,可以使用java小代码和EL表达式进行取值。
第六步:完成之后,在eclipse里面的Gradle Tasks里面点击deploy进行部署。
第七步:我们点击了deploy,但是发现其实并没有真正的部署。这个原因在上篇博客里面也说过,默认情况下是打了个jar包在当前工作区下面的bundlesosgimodules下面生成了相应的jar包,我们可以将此jar包复制到liferay的deploy目录下面进行部署。
自动部署:修改当前worksapce下面的gradle.properties文件,在里面添加
liferay.workspace.home.dir=E:/WorkCode/liferay7/portal
上面的路径为Liferay 7 Portal的路径,注意路径要修改为反斜杠。此时再执行deploy就自动的部署到了Liferay Portal里面。
第八步:进入Liferay 7,使用管理员登录,点击添加-->应用程序-->示例,在这里将我们的portlet拖到界面上。
止此一个简单的示例就完成了。
技巧:
我们发现上面这个部署有点小麻烦,改点JSP的内容甚至都需要点击deploy重新进行。
可以在module上面点击右键,Run As-->Run on server-->选择Liferay 7 tomcat,点击完成。这样就实现了一个热部署发布,我们现在修改JSP的内容,修改后刷新页面就可以看到变化。而不用再执行Gradle Task的deploy。