您的位置:首页 > 其它

Portlet开发例子HelloWorld

2012-12-06 22:06 267 查看
下面的例子基本参照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的名字-->
<portlet-name>hello1</portlet-name>
<portlet-class>com.demo.Helloworld</portlet-class>
<expiration-cache>0</expiration-cache>
<supports>
<!--portlet的三种模式,其中view模式是必须有的,其余两种可选-->
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>help</portlet-mode>
</supports>
<portlet-info>
<title>你好,Portlet</title>
<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>hello1</servlet-name>
<!--这个Servlet是用来与Pluto通讯用的,pluto通过该servlet来知道某个context是个portlet,如果没有这个servlet,portlet就没法自动注册到pluto中-->
<servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
<init-param>
<!--portlet的名字必须和portlet.xml中portlet的名字一致-->
<param-name>portlet-name</param-name>
<param-value>hello1</param-value>
</init-param>
<init-param>
<!--唯一标识,每个portlet的标识应该都不同-->
<param-name>portlet-guid</param-name>
<param-value>demo.hello1</param-value>
</init-param>
<init-param>
<!--这个参数是告诉pluto,portlet名字所对应的类是什么-->
<param-name>portlet-class</param-name>
<param-value>com.demo.Helloworld</param-value>
</init-param>
<init-param>
<!--这个参数的作用是在PortletServlet执行init方法时,根据charset参数获取字符集,然后在执行响应时调用response.setContentType来设置编码-->
<param-name>charset</param-name>
<param-value>utf-8</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>hello1</servlet-name>
<!--映射模板必须以/PlutoInvoker开头,否则pluto识别不出来-->
<url-pattern>/PlutoInvoker/hello1</url-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所显示的内容了,如下所示:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: