Liferay学习笔记(二)——第一个Liferay例子——Hello World

原创 2011年01月18日 18:32:00

第一个Liferay例子——Hello World

1、打开MyEclipse,新建一个Java Project,如:MyLiferay
2、在MyLiferay下新建webRoot子Folder,在webRoot下新建WEB-INF子Folder
3、右键项目名选择“Build Path—>Configure Build Path”,将Source选项下的Default output folder设置为MyLiferay/webRoot/WEB-INF/classes
    如下图:
        
        在Libraries选项下点击Add External JARs...,将liferay-portal-tomcat-6.0-5.2.3包下的tomcat6.0.18/lib/ext目录下的所有jar包添加到Libraries下
        如下图:
        
4、在webRoot文件夹下新建view.jsp页面,在页面上显示“Hello World!”
5、新建MyPortlet.java类,Package设置为:com.company.portal,继承javax.portlet.GenericPortlet抽象类;在MyPortlet.java中实现GenericPortlet的doDispatch、doEdit、
    doHelp、doView、init和ProcessAction这五个方法,具体内容如下: 
package com.jyyr.portal;
import java.io.IOException;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
/**
*
* @CopyRight 2011
* @Create by admin on 2011-1-16 下午02:42:55
* @Function
*
* @Version 1.0
* @Update
*/
public class MyPortlet extends javax.portlet.GenericPortlet{
    protected String editJSP;
    protected String helpJSP;
    protected String viewJSP;
 
    private static Log _log = LogFactoryUtil.getLog(MyPortlet.class);
 
    @Override
    protected void doDispatch(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        String jspPage = request.getParameter("jspPage");
        if(jspPage != null){
            include(jspPage,request,response);
        }else{
            super.doDispatch(request, response);
        }
    }
 
    @Override
    protected void doEdit(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        if(request.getPreferences() == null){
            super.doEdit(request, response);
        }else{
            include(editJSP,request,response);
        }
    }
 
    @Override
    protected void doHelp(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        include(helpJSP,request,response);
    }
 
    @Override
    protected void doView(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        include(viewJSP,request,response);
        }
 
    @Override
    public void init() throws PortletException {
        this.editJSP = getInitParameter("edit-jsp");
        this.helpJSP = getInitParameter("help-jsp");
        this.viewJSP = getInitParameter("view-jsp");
    }
 
    @Override
    public void processAction(ActionRequest request, ActionResponse response)
            throws PortletException, IOException {
    }
 
    protected void include(String path,RenderRequest request,RenderResponse response)
            throws PortletException, IOException {
        PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(path);
        if(prd == null){
            _log.error(path+" is not a valid include");
        }else{
            prd.include(request, response);
        }
    }
}
6、在WEB-INF目录下新建portlet.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd /opt/SUNWportal/dtd/portlet.xsd" version="2.0">
    <portlet>
        <portlet-name>myliferay</portlet-name>
        <display-name>Sample JSP</display-name>
        <portlet-class>com.company.portal.MyPortlet</portlet-class>
        <init-param>
            <name>view-jsp</name>
            <value>/view.jsp</value>
        </init-param>
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
        </supports>
        <portlet-info>
            <title>HelloWorld</title>
            <short-title>HelloWorld</short-title>
            <keywords>HelloWorld</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>
7、在WEB-INF目录下新建liferay-portlet.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!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>myliferay</portlet-name>
        <instanceable>true</instanceable>
    </portlet>
    <role-mapper>
        <role-name>administrator</role-name>
        <role-link>Administrator</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>guest</role-name>
        <role-link>Guest</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>power-user</role-name>
        <role-link>Power User</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>user</role-name>
        <role-link>User</role-link>
    </role-mapper>
</liferay-portlet-app>
8、在WEB-INF目录下新建liferay-display.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!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.test">
        <portlet id="myliferay"></portlet>
    </category>
</display>
9、启动MyEclipse中的Tomcat,同时通过dos进入MyLiferay项目的webRoot目录下,输入:jar cvf MyLiferay.war WEB-INF view.jsp,将WEB-INF和view.jsp一起打包。如下图:
    
10、上步服务器启动后会弹出liferay的官网登陆页面,输入用户名:test@liferay.com;密码:test;进入账户
11、打开账户页面右上角的下拉列表,选择Add Application,如下图:
    
    然后点击Install More Applications,如下图:
    
    在弹出的页面中选择Upload File,添加之前打包生成的MyLiferay.war,然后点击Install,如下图:
    
    显示下面这个界面说明上传成功
    
 
    点击Back to Guest,重新选择Add Application,可以看到Undefined节点下出现了myfirstportal节点,拖动该节点到页面上即可显示view.jsp的
    页面内容。注:这里看到的节点名myfirstportal是在portlet.xml文件的<portlet-info></portlet-info>子标签中定义的;另外,重新登录后可以看
    到与Undefined同级的Test节点,其子节点中也有myfirstportal
    
    
12、到此,我们的第一个Liferay例子——Hello World已经完成。感兴趣的朋友可以尝试改变view.jsp的内容后会有什么效果。
下图是我写的一个简单的用户登录界面:

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Liferay portal 6.1项目搭建及部署注意事项

liferay(又称Liferay Portal)是一个开源门户项目,该项目包含了一个完整的J2EE应用。该项目使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基...

Liferay研究之十五:Liferay如何对外提供Service,以及如何调用

 Liferay是基于SOA理念设计的,很容易通过Web Services对外提供服务接口,下面简单介绍一下。Liferay如何对外提供服务?1、在service.xml中编辑,增加一个2、ant b...

Swift学习笔记(一)——我的第一个Swift程序 Hello World

目前开发iOS必学的两门语言就是OC和Swift了,这两门语言目前呈现的趋势是此消彼长。但是为了很好的开发,学好两门语言是十分有必要的。现在我将开始Swift的学习。这是我的第一个Swift程序——H...

C#学习笔记(二)——hello world程序详解

hello world 程序详解 在上一篇文章中我们写了一个简单的windows平台小程序,我们只是确保它可以运行并没有具体了解这些代码什么意思,我们今天看一下这些代码。代码如下: using S...

ios学习笔记(二)第一个应用程序--Hello World

上一篇文章,Windows7上使用VMWare搭建iPhone开发环境 介绍了在windows上安装Mac os x操作系统的方法,本篇文章将介绍Xcode的安装及第一个应用程序的开发 1.下载并安装...

ios学习笔记(二)第一个应用程序--Hello World

原文地址:http://blog.csdn.net/shangyuan21/article/details/18416537 上一篇文章,Windows7上使用VMWare搭建iPhone开...

ios学习笔记(二)第一个应用程序--Hello World

上一篇文章,Windows7上使用VMWare搭建iPhone开发环境介绍了在windows上安装Mac os x操作系统的方法,本篇文章将介绍Xcode的安装及第一个应用程序的开发1.下载并安装Xc...
  • mao0514
  • mao0514
  • 2016年02月15日 16:29
  • 1013

spring学习笔记——spring Hello world 普通java项目版 分析类的加载与装配

上一篇展示了spring的web版hello world,本篇来一个普通java项目中运用spring的demo,里面有对singleton与prototype的讨论,可以很清晰的看到spring对实...
  • gklifg
  • gklifg
  • 2013年11月11日 13:49
  • 1559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Liferay学习笔记(二)——第一个Liferay例子——Hello World
举报原因:
原因补充:

(最多只允许输入30个字)