
Sample Sping Portlet
Step 1:
Setup plugin and server environment for Liferay 5.2.0 +
Step 2:
Create new portlet by running the following command from plugin → portlet folder.
Command:
ant create -Dportlet.name="spring-mvc-demo" -Dportlet.display.name="Spring MVC Demo Portlet"
(or)
create.bat "spring-mvc-demo" "Spring MVC Demo Portlet"
spring-mvc-demo-portlet will available under portlet folder.
Step 3:
Create "context" folder under spring-mvc-demo → docroot → WEB-INF path.
Create the following spring-portlet.xml file under the context folder.
===================spring-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="prefix">
<value>/WEB-INF/html/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="portletModeHandlerMapping" class="org.springframework.web.portlet.handler.PortletModeHandlerMapping">
<property name="portletModeMap">
<map>
<entry key="view"><ref local="springController"/></entry>
</map>
</property>
</bean>
<bean id="springController" class="com.sigma.SigmaController" >
<property name="viewName" value="view" />
</bean>
</beans>
Step 4:
Create html folder under spring-mvc-demo → docroot → WEB-INF path.
Create the following view.jsp file under the html folder.
===================view.jsp============================
Hi!! Welcome to spring demo porltet.
Note: Delete the file view.jsp, css and js folder which is available under docroot folder.
Step 5:
Create sigma folder under spring-mvc-demo → docroot → WEB-INF → src → com path.
Create the following SigmaController.java file under the html folder.
===================SigmaController.java============================
package com.sigma;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.portlet.mvc.ParameterizableViewController;
import org.springframework.web.portlet.mvc.AbstractController;
public class SigmaController extends ParameterizableViewController
{
public ModelAndView handleRequest(RenderRequest req,
RenderResponse res) throws Exception {
return new ModelAndView(this.getViewName());
}
}
Note: Delete the jsp folder which is available under
spring-mvc-demo → docroot → WEB-INF → src → com folder.
Step 6:
Alter the portlet.xml file which is available under spring-mvc-demo->docroot->WEB-INF path.
<?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>spring-mvc-demo</portlet-name>
<display-name>Spring MVC Demo Porlet</display-name>
<portlet-class>
org.springframework.web.portlet.DispatcherPortlet
</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/spring-portlet.xml</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>Spring MVC Demo Porlet</title>
<short-title>Spring MVC Demo Porlet</short-title>
<keywords>Spring MVC Demo Porlet</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
</portlet-app>
Step 7:
Alter the liferay-display.xml file which is available under spring-mvc-demo → docroot → WEB-INF path.
<?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.sigma">
<portlet id="spring-mvc-demo" />
</category>
</display>
Step 8:
Alter the web.xml file which is available under spring-mvc-demo->docroot->WEB-INF path.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<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>
Step 9:
Create lib folder if not exists under spring-mvc-demo->docroot->WEB-INF path.
Include the following jar files.
1.spring-webmvc-portlet.jar
2.spring-webmvc.jar
3.spring.jar
4.jstl.jar
Step 10:
Goto the spring-mvc-demo folder and run the following command deploy to server.
command: ant clean compile deploy.
Step 11:
Start the server and check this portlet.
=============================================================================