注意:
以下内容是基于Liferay 4.2.2,如果使用Liferay5.1.X版本有些地方是不一样的,在这里就先不细说了。
建议开发流程如下:
为什么用Struts?
1、Struts实现了MVC.虽然有其他框架实现MVC,Struts是最广泛应用和最成熟的技术.
2、什么是MVC?MVC将显示代码从业务逻辑中分离出来.
3、Struts在struts-config.xml中提供了集中的页面流管理.这使得它高度可升级并且使得你模块化代码流程.
4、通过使用struts,你可以使用一些最佳实践,已经集成在框架中.
为什么用tiles?
一个页面布局是一个使用包含典型声明的设计.如果有100个JSPs并且头和尾都需要改变,所有的100JSPs都需要改变.用tiles,一个简单的模板可以被用于定义页面布局.只要模板改变,所有页面将会依次改变。
Step1:配置Portlet
添加portlet配置信息到…/ext-web/docroot/WEB-INF/portlet-ext.xml中。
对于这份指南, 添加下列内容到你的portlet-ext.xml。
Step2:配置Portlet实例属性
添加Liferay具体信息到…/ext-web/docroot/WEB-INF liferay-portlet-ext.xml。
对于这份指南, 添加下列内容到你的liferay-portlet-ext.xml中即可。
注意:
1、 <sruts-path> 是value中第一个“/”和最后一个“/”之间的内容。
2、 这里的<portlet-name>元素的值 EXT_4必须要和portlet-ext.xml中的<portlet-name>元素的值一致的。
Step3:定义Portlet名称
定向到…/ext-ejb/classes/content/Language-ext.properties添加:
其中的key值(即javax.portlet.title.EXT_4),是“javax.portlet.title”+“portlet名字”(即在portlet-ext.xml中添加的portlet的<portlet-name>的值)
Step4:归类Portlet
定向到…/ext-web/docroot/WEB-INF/liferay-display.xml,添加Portlet归类信息如下:
以上信息主要是为了在添加应用窗口中显示定义的portlet。如果做了Step3,那么最终在添加应用窗口中显示是第三步所定义的名字。在本例中将显示“Library”。添加应用窗口如下图所示,因使用liferay版本不同页面效果会不太一样。
Step5:定义Struts页面流
在配置文件…/ext-web/docroot/WEB-INF/struts-config.xml中定义struts页面流。
注意:
这里的path="/ext/library/add_book"值就是portlet-ext.xml中对应的view-action的值。
Step6:定义tiles页面布局
在配置文件…/ext-web/docroot/WEB-INF/tiles-defs.xml中定义页面布局。
这理portlet.ext.library 继承 portlet。这意味着portlet.ext.library将会使用 portlet.jsp 作为它的模板。portlet.ext.library.view 继承 portlet.ext.library。这意味着portlet.ext.library.view portlet.ext.library也将会使用
portlet.jsp 作为它的模板.
注意:
这里的name="portlet.ext.library.view"值就是struts-config.xml中对应的forward="portlet.ext.library.view"的值
说明:StrutsPortlet的数据流转,如下图:
Step7:创建目录library
创建一个叫library的目录,你的目录结构应该像这样: …/ext-web/docroot/html/portlet/ext/library。
Step8:创建init.jsp
在library中创建init.jsp你的目录结构应该像这样:…/ext-web/docroot/html/portlet/ext/library/init.jsp。输入下列内容到init.jsp中:
看看我们在这行中包含了什么?
实际对应目录是:…/portal/portal-web/docroot/html/common/init.jsp。这将会让我们使用Liferay 标签库
Step9:创建view.jsp
在library中创建view.jsp文件。在本例中,可以直接复制如下代码。
这将会让我们使用在上一步这定义的init.jsp
Step10:创建成功和错误页面
在liberay目录下面创建文件error.jsp和success.jsp,内容分别是“ERROR!”和“SUCCESS!”
我们可以在成功页面中显示一些内容。
Step11:创建Action类
创建 action 类来处理提交,AddBookAction.java。
Step12:测试框架部署
利用命令Ant deploy。部署文件到Tomcat服务器,需要重新启动服务器。检验文件是否部署到tomcat。
定向到… /tomcat/webapps/ROOT/WEB-INF 打开portlet-ext.xml,liferay-portlet-ext.xml,struts-config-ext.xml和tiles-defs-ext.xml检查文件是否部署正确。
定向到… /tomcat/webapps/ROOT/html/portlet/ext/library 打开view.jsp,检查文件是否部署正确。
启动服务器,访问http://localhost:8080。
登录系统,用户名:test@liferay.com。密码:test。
调出添加应用页面,找到添加的portlet。本例中,找到library。操作一下,看看是否可以看到成功页面。