转自: http://www.huqiwen.com/2013/01/10/liferay-6-1-development-study-17-springmvc-portlet/
SpringMVC使用起来是简单易懂,方便快捷。springmvc 在很早之前就开始提供对于JSR168的支持,同样的liferay的这个portal是实现了JSR 168和JSR268规范的,理论只要是提供对JSR 168或JSR268规范支持的MVC框架都可以用来开发Liferay portlet,像Struts1/struts2/SpringMVC等。
对于SpringMVC在portlet中的使用,在Spring的官方文档中已经有说了详细的说明(在spring-framework-reference中的19章。),这里参考官方文档进行配置。
环境准备
Liferay版本:6.1.1 CE版本
Spring版本:3.2.0 GA
Liferay IDE: 1.6.1
开发步骤
一、导入SpringMVC portlet所需要的jar包。
- spring-beans-3.2.0.RELEASE.jar
- spring-context-3.2.0.RELEASE.jar
- spring-core-3.2.0.RELEASE.jar
- spring-expression-3.2.0.RELEASE.jar
- spring-web-3.2.0.RELEASE.jar
- spring-webmvc-3.2.0.RELEASE.jar
- spring-webmvc-portlet-3.2.0.RELEASE.jar
二、新建一个Portlet插件开发的工程,可以使用Liferay IDE中的portlet创建向导建立一个普通的插件工程。
三、修改web.xml,在里面添加如下内容:
- <servlet>
- <servlet-name>ViewRendererServlet</servlet-name>
- <servlet-class>org.springframework.web.servlet.ViewRendererServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>ViewRendererServlet</servlet-name>
- <url-pattern>/WEB-INF/servlet/view</url-pattern>
- </servlet-mapping>
四、portlet.xml中的内容修改,portlet.xml中的主要内容如下,主要为portlet-class的内容,要使用spring的dispatcherPortlet,下面的init-param为非必须的,他配置的内容为当前portlet所对应的mvc配置信息的xml地址,如果不配置,则自动的在web-inf目录下面寻找名称和当前portlet-name一样的xml文件。
- <portlet-name>SpringMVC</portlet-name>
- <display-name>SpringMVC</display-name>
- <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
- <init-param>
- <name>contextConfigLocation</name>
- <value>/WEB-INF/SpringMVC-portlet.xml</value>
- </init-param>
- <expiration-cache>0</expiration-cache>
- <supports>
- <mime-type>text/html</mime-type>
- <portlet-mode>view</portlet-mode>
- </supports>
五、springmvc的配置XML信息如下:SpringMVC-portlet.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
- <context:component-scan base-package="com.huqiwen.portlet" />
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass"
- value="org.springframework.web.servlet.view.JstlView" />
- <property name="prefix" value="/WEB-INF/jsp/" />
- <property name="suffix" value=".jsp" />
- </bean>
- </beans>
可以看到这里和普通的SpringMVC的配置没有什么区别。
六、编写SpringMVC的controller类,如下:
- @Controller
- @RequestMapping(value = "VIEW")
- public class SpringPortlet {
- @RenderMapping
- public String view(Model model){
- model.addAttribute("username", "huqiwen");
- return "view";
- }
- @RenderMapping(params = "action=edit")
- public String edit(Model model){
- model.addAttribute("edit", "action=edit");
- return "edit";
- }
- }
说明:
@RequestMapping中的VIEW,代表当前的是portlet的VIEW模式,如果是EDIT模式,则将这里的VIEW换成edit即可。
@RenderMapping 默认对应的是portlet进入的时候执行的方法。
@RenderMapping(params = "action=edit") 这个请求的是对应于用户在页面中的请求,如JSP中有如下的portlet请求,则会进入到这个方法里面,这里param name可以自定义,不一定叫action,可以叫cmd,op等均可
- <portlet:renderURL var="edit">
- <portlet:param name="action" value="edit"/>
- </portlet:renderURL>
一个简单的SpringMVC portlt示例下载:点击我
相关推荐
【Liferay 6.1 开发学习】 Liferay 是一款开源的企业级门户平台,它提供了内容管理、社交网络、协作工具等功能,适用于构建企业内部或对外的网站和工作平台。Liferay 6.1 版本是其重要的里程碑,包含了丰富的功能...
对于基于Liferay平台的应用开发来说,选择合适的集成开发环境(IDE)是提高开发效率的关键之一。本文将详细介绍如何在Eclipse 3.6以上版本中搭建Liferay 6.1的开发环境,并通过图文并茂的方式,指导开发者如何在...
无论选择哪个版本,Liferay 都需要一定程度的二次开发来实现特定的业务需求。 总的来说,Liferay 6.1 作为一个强大且灵活的平台,不仅提供了丰富的功能,还展示了其在市场中的成长潜力和领导地位。对于开发者和企业...
通过以上介绍,我们可以看出Liferay 6.1作为一个成熟的企业级门户平台,为用户提供了一站式的解决方案,不仅能够极大地简化网站的开发流程,还可以帮助用户构建出功能丰富、易于维护的高质量网站。
【Liferay 6.1 开发学习】 Liferay 是一个高度可定制的开源企业级门户平台,主要用于构建数字化工作环境、社交网络和企业内部协作系统。它的核心功能包括内容管理、用户管理和工作流程,旨在提供统一的用户体验。...
以上内容仅是Liferay 6.1 开发学习的一部分,实际开发过程中还会涉及portlet开发、主题定制、安全配置、性能调优等多个方面。对Liferay的学习和实践需要深入理解其架构和API,以及熟悉相关开发工具和框架。此外,...
### Liferay 6.1与Eclipse 3.6开发环境搭建详解 #### 一、前言 在软件开发领域,构建一个高效稳定的开发环境至关重要。对于基于Liferay平台进行开发的团队而言,确保开发环境的顺利搭建是项目成功的关键之一。本文...
标题 "Liferay6.1的SSI整合4(SDK开发)" 涉及的是在Liferay 6.1版本中集成Server Side Includes (SSI) 的技术,并且是该系列教程的第四部分,主要关注通过Liferay SDK进行开发。Liferay是一款开源的企业级Portal...
### LifeRay 6.1GA2开发手册关键知识点解析 #### 一、前言与介绍 根据提供的“LifeRay 6.1GA2开发手册”文档摘要,该手册主要介绍了如何利用LifeRay 6.1.1 GA2版本进行开发工作。LifeRay是一款功能强大的企业级...
除了内置的权限管理功能外,Liferay 6.1 还支持通过二次开发来扩展权限管理的能力。 - **开发者指南**:官方提供了详细的开发者指南,其中包含了关于如何进行权限管理二次开发的信息。 - **安全性和扩展性**:二次...
从Liferay 6.1到Liferay 6.2 将内容从Liferay 6.1版本迁移到6.2版本时,迁移的结构存在一个常见问题。 在Liferay 6.2中,结构的字段名称必须在全局范围内唯一,而在6.1中,它们的名称仅在层次结构级别上必须唯一。 ...
在 Liferay 6.2 开发中,除了基础概念和工具,开发者还需要掌握诸如portlet生命周期、服务构建、安全性和权限控制、国际化、事件处理、API 使用以及性能优化等方面的知识。本指南将逐步引导开发者深入这些主题,从而...
用Liferay6.1做的一个ext demo,通过struts可以对mysql进行增删改查(只做了查找和删除),里面的jsp会报错,不用管,能正常运行,数据库连接选项自己修改。 感谢http://hu437.iteye.com/blog/727055给了我很大的...
Liferay 6.1.2 开发环境的搭建 Liferay 是一个开源的企业portal平台,提供了丰富的功能和插件,帮助开发者快速构建企业门户网站。为了搭建 Liferay 6.1.2 开发环境,我们需要安装 JDK、Liferay Portal、Tomcat、Ant...
Liferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal。Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织。
本文将详述“liferay开发小记——开发环境的搭建”这一主题,旨在帮助开发者们快速有效地设置自己的开发环境,从而顺利进行Liferay插件或portlet的开发。 首先,我们需要了解Liferay开发的基础。Liferay提供了多种...
Using Liferay Portal 6.1
commons-configuration-gae.zip,配置的实现(由apache commons配置库提供),使用google app engine datastore api存储配置参数;配置的实现(由apache commons配置库提供),使用google app engine datastore api...
本文将基于提供的文件信息,深入解析Liferay Portlet开发的核心概念、流程及实践示例。 ### Liferay Portlet开发概览 Liferay Portlet开发主要涉及以下几个关键目录:`portalext-impl\src`, `ext-service\src`,...
这个插件(或Portlet项目)只不过为Liferay Portal 6.1提出了响应时间表(移动或桌面)。 关于前端已从Code Canyon的产品代码开始开发。 然后修改了CSS和JavaScript / jQuery。 对于后端,我使用了API Liferay ...