Portlet开发例子HelloWorld

下面的例子基本参照http://jim19770812.blogspot.com/2008/08/eclipsepluto-116portlet.html上写的。

首先,安装portlet容器Pluto。

到http://apache.mirror.phpchina.com/portals/pluto/上下载。pluto-1.1.6-bundle.zip是一个已经绑定到tomcat5.5.2中的pluto,直接解压,即可使用。

启动tomcat后打开浏览器,访问http://localhost:8080/pluto就可以打开pluto了,用户名口令是pluto/pluto。

然后,开发一个输出HelloWorld字的porlet页面。

首先,编写一个实现GenericPortlet的类,重写doview方法。

package com.demo;

import java.io.IOException;

import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

public class Helloworld extends GenericPortlet {
 @Override
 protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
  response.setContentType("text/html");
  response.getWriter().println("hello world");
 }
}
然后,配置portlet.xml和web.xml两份文件
portlet.xml

xml version="1.0" encoding="UTF-8" standalone="yes"?>
<portlet-app version="1.0"
 xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
 <portlet>
     
  <portlet-name>hello1portlet-name>
  <portlet-class>com.demo.Helloworldportlet-class>
  <expiration-cache>0expiration-cache>
  <supports>
   
   <mime-type>text/htmlmime-type>
   <portlet-mode>viewportlet-mode>
   <portlet-mode>helpportlet-mode>
  supports>
  <portlet-info>
   <title>你好,Portlettitle>
   <short-title>你好short-title>
  portlet-info>
 portlet>
portlet-app>


web.xml

xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>hello1servlet-name>
    
    <servlet-class>org.apache.pluto.core.PortletServletservlet-class>
    <init-param>
      
      <param-name>portlet-nameparam-name>
      <param-value>hello1param-value>
    init-param>
    <init-param>
        
        <param-name>portlet-guidparam-name>
        <param-value>demo.hello1param-value>
    init-param>
    <init-param>
        
        <param-name>portlet-classparam-name>
        <param-value>com.demo.Helloworldparam-value>
    init-param>
    <init-param>
        
        <param-name>charsetparam-name>
        <param-value>utf-8param-value>
    init-param>
    <load-on-startup>1load-on-startup>
  servlet>

  <servlet-mapping>
    <servlet-name>hello1servlet-name>
    
    <url-pattern>/PlutoInvoker/hello1url-pattern>
  servlet-mapping>
web-app>

布署
-WEB-INF  
          |-classes
             |-com
                  |-demo
                       |-Helloworld.class
          |-lib
          |-portlet.xml
          |-web.xm
最后,启动pluto
切换到pluto admin页面,这里是专门管理和部署portlet的。

网上很多文章都说需要手工修改pluto/WEB-INF/下的三个文件来部署portlet,估计那是低版本的portlet才这么干,pluto 1.1.6提供了很好的图形化界面可以实现部署的功能。

首先,要新增一个名叫test的标签页

在输入框里输入test,然后点击add page按钮,test标签页就出现了,如下图所示

下面的Portlet Applications可以向页面上添加portlet,由于先前已经在web.xml 中声明了一个hello1的servlet,并且相应参数都设置正确,所以现在在下拉框里可以选择hello1这个portlet了。如下图所示

点击添加portlet,这个portlet就添加到test标签页了。
切换到test标签页就可以看到helloword-portlet所显示的内容了,如下所示:

你可能感兴趣的:(Portlet开发例子HelloWorld)