fs_jin

导航

 

前言

SpringMVC使用起来是简单易懂,方便快捷。springmvc 在很早之前就开始提供对于JSR168的支持,同样的liferay的这个portal是实现了JSR 168和JSR268规范的,理论只要是提供对JSR 168或JSR268规范支持的MVC框架都可以用来开发Liferay portlet,像Struts1/struts2/SpringMVC等。

对于SpringMVC在portlet中的使用,在Spring的官方文档中已经有说了详细的说明(在第20章 Portlet MVC Framework),这里参考官方文档进行配置。

环境准备

Liferay版本:6.1.2 CE版本

Spring版本:3.2.0 GA

Liferay IDE::最新版

开发步骤

一建立工程

新建一个liferay Portlet插件开发的工程,可以使用Liferay IDE中的portlet创建向导建立一个普通的liferay project。这里我建立一个名为ExampleSpringMVCPro的liferay project。

二导入jar包

导入SpringMVC portlet所需要的jar包。

l spring-beans-3.2.0.RELEASE.jar

l spring-context-3.2.0.RELEASE.jar

l spring-core-3.2.0.RELEASE.jar

l spring-expression-3.2.0.RELEASE.jar

l spring-web-3.2.0.RELEASE.jar

l spring-webmvc-3.2.0.RELEASE.jar

l spring-webmvc-portlet-3.2.0.RELEASE.jar

把以上的jar包拷贝到工程的 docroot/lib 目录下。如图:

clip_image002

三、修改web.xml

修改web.xml,在里面添加如下内容:

clip_image004

如下图:

clip_image002[5]

这里必须要设置ViewRenderServlet并且设置 servlet的地址映射。因为Springportlet在渲染视图时,它会用RequestDispatcher forward到ViewRenderServlet来完成这件事情。为了调用ViewRenderServlet,我们必须在web.xml中声明这个Servlet,并且url-pattern设置为/WEB-INF/servlet/view,这样我们的请求信息(包括视图和模型)就会全部包含在HttpServletRequest中,并且交给ViewRenderServlet的renderView()方法来完成具体的视图渲染工作。

四、portlet.xml添加portlet

portlet.xml中的内容修改,portlet.xml中的主要内容如下,主要为portlet-class的内容,要使用spring的dispatcherPortlet,下面的init-param为非必须的,他配置的内容为当前portlet所对应的mvc配置信息的xml地址,如果不配置,则自动在web-inf目录下面寻找名称和当前portlet-name一样的xml文件。

clip_image008

五、SpringMVC-portlet.xml 配置

springmvc的配置XML信息如下:SpringMVC-portlet.xml

clip_image010

这里和普通的SpringMVC的配置没有什么区别。

六、liferay-display.xml

这里设置portlet显示在那个分类下,设置如下:

clip_image011

七、编写portlet 实体类

编写SpringMVC的controller类,如下:

clip_image013

说明:

@RequestMapping中的VIEW,代表当前的是portlet的VIEW模式,如果是EDIT模式,则将这里的VIEW换成edit即可。

@RenderMapping 默认对应的是portlet进入的时候执行的方法。

@RenderMapping(params = "action=edit")   这个请求的是对应于用户在页面中的请求,如JSP中有如下的portlet请求,则会进入到这个方法里面,这里param name可以自定义,不一定叫action,可以叫cmd,op等均可。如下图:

clip_image014

八、部署和运行

在liferay ide 中,打开 windows\show view\other,输入ant,调出ant工具。如图:

clip_image016

把该项目路径下的 build.xml拖拽到 ant工具里。双击deploy,当console出现“BUILD SUCCESSFUL”字样,表示该项目已经打包成功并且放置在bundles\deploy 文件夹下。这里的路径为

clip_image018

把生成的ExampleSpringMVCPro-portlet-6.1.1.1.war复制到liferay实例的deploy文件夹下并启动tomcat,liferay会自动完成该portlet的部署。

如下图:

clip_image020

posted on 2014-03-06 11:18  fs_jin  阅读(1719)  评论(1)    收藏  举报