利用Spring Portlet MVC 开发一个简单的Portlet的全部过程
2010-07-22 18:44
811 查看
整个实例的目录结构如下(在Liferay Portal开发环境的Plugins SDK 开发环境下):
![](https://oscdn.geek-share.com/Uploads/Images/Content/201007/32e31b301e570444782b319f8fbbd7af.gif)
1.创建web.xml
在web.xml中配置视图渲染解析器ViewRendererServlet
并且可以配置WebRootApplication,通过ContextLoaderListener从默认的/WEB-INF/目录下加载applicationContext.xml文件
不过通过contextConfigLocation全局参数,可以指定applicaitonContext.xml的位置。
2.创建重要的portlet.xml文件:
配置前端Portlet----DispatcherPortlet并且为其配置相应的bean容器描述文件
3.创建liferay-portlet.xml文件:
5.配置Spring MVC 运行时所需的一些组件(HandlerMapping,ViewResolver,Controller):
创建hello-world-portlet.xml:
6.创建类ViewController:
7.创建jsp页面:
部署在liferay Portal后的运行效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201007/32e31b301e570444782b319f8fbbd7af.gif)
1.创建web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/context/application-context.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>ViewRendererServlet</servlet-name> <servlet-class> org.springframework.web.servlet.ViewRendererServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ViewRendererServlet</servlet-name> <url-pattern>/WEB-INF/servlet/view</url-pattern> </servlet-mapping> </web-app>
在web.xml中配置视图渲染解析器ViewRendererServlet
并且可以配置WebRootApplication,通过ContextLoaderListener从默认的/WEB-INF/目录下加载applicationContext.xml文件
不过通过contextConfigLocation全局参数,可以指定applicaitonContext.xml的位置。
2.创建重要的portlet.xml文件:
配置前端Portlet----DispatcherPortlet并且为其配置相应的bean容器描述文件
<?xml version="1.0"?> <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"> <portlet> <portlet-name>hello-world</portlet-name> <display-name>Hello World Spring Portlet MVC</display-name> <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class> <init-param> <name>contextConfigLocation</name> <value>/WEB-INF/context/hello-world-portlet.xml</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> </supports> <portlet-info> <title>Hello World Spring Portlet MVC</title> <short-title>Hello World Spring Portlet MVC</short-title> <keywords>Hello World Spring Portlet MVC</keywords> </portlet-info> <security-role-ref> <role-name>administrator</role-name> </security-role-ref> </portlet> </portlet-app>
3.创建liferay-portlet.xml文件:
<?xml version="1.0"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_5_2_0.dtd"> <liferay-portlet-app> <portlet> <portlet-name>hello-world</portlet-name> <icon>/icon.png</icon> <instanceable>false</instanceable> </portlet> <role-mapper> <role-name>administrator</role-name> <role-link>Administrator</role-link> </role-mapper> </liferay-portlet-app> 4.创建liferay-display.xml文件: <?xml version="1.0"?> <!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN" "http://www.liferay.com/dtd/liferay-display_5_2_0.dtd"> <display> <category name="category.sample"> <portlet id="hello-world" /> </category> </display>
5.配置Spring MVC 运行时所需的一些组件(HandlerMapping,ViewResolver,Controller):
创建hello-world-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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="cache" value="true"/> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix"><value>/</value></property> <property name="suffix" value=".jsp"/> </bean> <bean id="portletModeHandlerMapping" class="org.springframework.web.portlet.handler.PortletModeHandlerMapping"> <property name="portletModeMap"> <map> <entry key="view"><ref local="viewController"/></entry> </map> </property> </bean> <bean id="viewController" class="com.liuxi.portal.portlet.sample.controllers.ViewController"> <property name="viewName" value="view"/> </bean> </beans>
6.创建类ViewController:
package com.liuxi.portal.portlet.sample.controllers; import java.util.Comparator; import java.util.List; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.springframework.web.portlet.ModelAndView; import org.springframework.web.portlet.mvc.ParameterizableViewController; import com.liferay.portal.kernel.util.ListUtil; public class ViewController extends ParameterizableViewController { @SuppressWarnings("unchecked") @Override protected ModelAndView handleRenderRequestInternal(RenderRequest request, RenderResponse response) throws Exception { return (new ModelAndView(this.getViewName())); } }
7.创建jsp页面:
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> <portlet:defineObjects /> <p>Hello World I am the first Portlet Using Spring Portlet MVC </p> <br/> request.getUserPrincipal().getName():<%=request.getUserPrincipal().getName()%><br/> request.getContextPath():<%= request.getContextPath() %><br/> request.getLocale().getDisplayCountry():<%=request.getLocale().getDisplayCountry()%><br/> request.getLocale().getDisplayLanguage():<%=request.getLocale().getDisplayLanguage()%><br/> renderRequest.getPortalContext().getPortalInfo():<%= renderRequest.getPortalContext().getPortalInfo() %><br/> request.getRemoteUser():<%= request.getRemoteUser() %><br/>
部署在liferay Portal后的运行效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201007/14e32143fbe1f7b9b4282051a477f803.gif)
相关文章推荐
- 【iOS开发-50】利用创建新的类实现代码封装,从而不知不觉实践一个简单的MVC实验,附带个动画
- 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- Android的NDK开发(2)——利用Android NDK编写一个简单的HelloWorld
- Spring Portlet MVC开发入门示例
- 用SpringMVC+Hibernate+Spring 简单的一个整合实例
- spring-mvc 入门-一个简单的例子
- PHP实现MVC开发: 一个简单的MVC
- Spring Portlet MVC开发入门示例
- springmvc+hibernate的一个简单实例
- Spring+Portlet+MVC实例开发
- Spring 3之MVC & Security简单整合开发(一)
- SpringMVC+Spring3+hibernate4 开发环境搭建以及一个开发实例教程
- 一个简单的Springmvc Spring Hibernate 整合的案例
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载【转】
- 开发过程中,利用Spring ServletContextAware 处理JS缓存问题。
- 一个简单而全面的有关控件开发调试过程
- PHP实现MVC开发: 一个简单的MVC
- 在Web应用程序开发过程中利用ASP.NET MVC框架的实战技巧
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- SpringMvc+Mybatis实现一个简单人事管理系统(三)