[Liferay] 在 Liferay 使用 SpringMVC 的 @ResourceMapping

来源:互联网 发布:淘宝客怎么和商家合作 编辑:程序博客网 时间:2024/05/16 17:34

之前一篇介绍过 Portlet 的 Resource Serving 生命周期的概念以及使用方法,

因为使用不同的 MVC 框架,框架代码结构以及对 portlet 各个生命周期的调用方法都不一样,

之前的项目都是用 Liferay 自己的 Liferay MVC,这是个非常轻量级的 MVC 框架,有兴趣的可以研究下,

当然使用 Liferay SDK 开发 portlet 时可以选择 使用 LiferayMVC 并一探究竟




应为项目需要,现在使用 Spring Portlet MVC, 所以简单记录下 使用 ResourceMapping 注解实现 Resource Serving 生命周期。

其实就两部,

Jsp代码:


<portlet:resourceURL id="getMeResource" />


Java代码:


@Controller@RequestMapping(value = "EDIT")public class ResourceURLTestController {@ResourceMapping("getMeResource")public void whateverIsThisCalled(@RequestParam("whatever") String whatever,ResourceRequest request, ResourceResponse response) {}}



1. @Controller :实现 Spring MVC 都必须定义一个 Controller 实现类,开发过程中是用的是 Spring 3.X, 所以直接使用注解表明具体 Controller 实现类。

2. @RequestMapping(value = "EDIT") : 让 Spring MVC 知道这个 Controller 实现类是针对于 Edit Mode 的,关于Edit Mode 。

3. ResourceURLTestController : 如果针对于 Edit Mode 只有着一个 Controller 实现类的话,那类名是什么都无所谓了。

4. @ResourceMapping : mapping 顾名思义就是请求与具体实现的映射了,这个对应予在 JSP 页面 resourceURL 标签当中的 id,所以触发 resourceURL之后, Spring 就会帮我们吧请求映射到这个对应的实现方法。

5. public void whatecerIsThisCalled : 既然有映射了,那方法名字是什么都无所谓,当然为了清晰最好还是与 resourceURL 的 id 一样。

6. 使用 @ResourceMapping 注解的方法, 在一个 Controller 类里可以是多个的,而 LiferayMVC 的 portlet 实现类只能有一个 serveResource 方法。






0 0
原创粉丝点击