posts - 431,  comments - 344,  trackbacks - 0

          需要portal-kernel.jar和portlet.jar兩個包,放入lib下。
          package com.rain.portal;

          import Java.io.IOException;

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

          public class HelloWorldPortlet extends GenericPortlet {

           @Override
           protected void doEdit(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
            // TODO Auto-generated method stub
            arg1.setContentType("text/html");
            arg1.getWriter().println("Hello World,This is a Portlet!---doEdit");

           }

           @Override
           protected void doView(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
            // TODO Auto-generated method stub
            arg1.setContentType("text/html");
            arg1.getWriter().println("Hello World,This is a Portlet!---doView");

           }

          }

          package com.rain.portal;

          import Java.io.IOException;

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

          public class HelloJSPPortlet extends GenericPortlet {

           @Override
           protected void doEdit(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
            // TODO Auto-generated method stub
            arg1.setContentType("text/html");
            String jspName=getPortletConfig().getInitParameter("edit-jsp");
            PortletRequestDispatcher rd=getPortletContext().getRequestDispatcher(jspName);
            rd.include(arg0, arg1);
           }

           @Override
           protected void doView(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
            // TODO Auto-generated method stub
            arg1.setContentType("text/html");
            String jspName=getPortletConfig().getInitParameter("view-jsp");
            PortletRequestDispatcher rd=getPortletContext().getRequestDispatcher(jspName);
            rd.include(arg0, arg1);
           }

          }


          web.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<web-app>
            <display-name>TestPortal</display-name>
            <listener>
              <listener-class>com.liferay.portal.kernel.servlet.PortletContextListener</listener-class>
            </listener>
            <servlet>
              <servlet-name>HelloWorldPortlet</servlet-name>
              <servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
              <init-param>
                <param-name>portlet-class</param-name>
                <param-value>com.rain.portal.HelloWorldPortlet</param-value>
              </init-param>
              <load-on-startup>0</load-on-startup>
            </servlet>
             <servlet>
              <servlet-name>HelloJSPPortlet</servlet-name>
              <servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
              <init-param>
                <param-name>portlet-class</param-name>
                <param-value>com.rain.portal.HelloJSPPortlet</param-value>
              </init-param>
              <load-on-startup>0</load-on-startup>
            </servlet>
            <servlet-mapping>
              <servlet-name>HelloWorldPortlet</servlet-name>
              <url-pattern>/HelloWorldPortlet/*</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
              <servlet-name>HelloJSPPortlet</servlet-name>
              <url-pattern>/HelloJSPPortlet/*</url-pattern>
            </servlet-mapping>
            <taglib>
              <taglib-uri>PortletTag</taglib-uri>
              <taglib-location>/WEB-INF/tld/liferay-portlet.tld</taglib-location>
            </taglib>
          </web-app>

          portlet.xml用來定義Portlet的諸如部署名稱、初始化參數、支持模式、resource bundle等普通的初始化信息,包括:portlet-namedisplay-nameportlet-classinit-paramexpiration-cathesupportsportlet-infosecurity-role-ref等等。其正式的規范請參考:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd

          portlet.xml
          <?xml version="1.0"?>
          <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd  <portlet>
              <portlet-name>HelloWorldPortlet</portlet-name>
              <display-name>HelloWorldPortlet</display-name>
              <portlet-class>com.rain.portal.HelloWorldPortlet</portlet-class>
              <expiration-cache>0</expiration-cache>
              <supports>
                <mime-type>text/html</mime-type>
              </supports>
              <supports>
                <mime-type>text/html</mime-type>
                <portlet-mode>edit</portlet-mode>
              </supports>
              <portlet-info>
                <title>HelloWorldPortlet</title>
                <short-title>HelloWorldPortlet</short-title>
                <keywords>HelloWorldPortlet</keywords>
              </portlet-info>
              <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>
              <portlet-name>HelloJSPPortlet</portlet-name>
              <display-name>HelloJSPPortlet</display-name>
              <portlet-class>com.rain.portal.HelloJSPPortlet</portlet-class>
              <init-param>
                <name>view-jsp</name>
                <value>/view.jsp</value>
              </init-param>
              <init-param>
                <name>edit-jsp</name>
                <value>/edit.jsp</value>
              </init-param>
              <expiration-cache>0</expiration-cache>
              <supports>
                <mime-type>text/html</mime-type>
              </supports>
              <supports>
                <mime-type>text/html</mime-type>
                <portlet-mode>edit</portlet-mode>
              </supports>
              <portlet-info>
                <title>HelloJSPPortlet</title>
                <short-title>HelloJSPPortlet</short-title>
                <keywords>HelloJSPPortlet</keywords>
              </portlet-info>
              <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>

          定義Portlet默認可用的用戶組、默認模板、是否支持多個實例等,規范由http://www.liferay.com/dtd/liferay-Portlet-app_3_5_0.dtd

          liferay-portlet.xml
          <?xml version="1.0"?>
          <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 4.2.0//EN" "<liferay-portlet-app>
            <portlet>
              <portlet-name>HelloWorldPortlet</portlet-name>
              <struts-path>HelloWorldPortlet</struts-path>
              <use-default-template>true</use-default-template>
              <instanceable>true</instanceable>
            </portlet>
            <portlet>
              <portlet-name>HelloJSPPortlet</portlet-name>
              <struts-path>HelloJSPPortlet</struts-path>
              <use-default-template>true</use-default-template>
              <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>

          定義Portlet默認的所屬類別。Liferay PortalPortlet實行按類別管理和劃分用戶權限。

          liferay-display.xml
          <?xml version="1.0"?>
          <!DOCTYPE display PUBLIC "-//Liferay//DTD Display 4.0.0//EN" "
          <display>
            <category name="category.test">
              <portlet id="HelloWorldPortlet"/>
              <portlet id="HelloJSPPortlet"/>
            </category>
          </display>

          view.jsp
          <table cellpadding="8" cellspacing="0" width="100%">
            <tr>
              <td>
                <font class="Portlet-font" style="font-size:x-small;">
                  This is a <b>Sample JSP Portlet</b> used in viewing model. Use this as a quick way to include JSPs.
                </font>
              </td>
            </tr>
          </table>

          edit.jsp
          <table cellpadding="8" cellspacing="0" width="100%">
            <tr>
              <td>
                <font class="Portlet-font" style="font-size:x-small;">
                  This is a <b>Sample JSP Portlet</b> used in editing model. Use this as a quick way to include JSPs.
                </font>
              </td>
            </tr>
          </table>
          主站蜘蛛池模板: 修武县| 宜昌市| 沁源县| 六枝特区| 宜良县| 九龙城区| 罗江县| 仙居县| 石泉县| SHOW| 东阳市| 同心县| 金平| 托里县| 寻甸| 衡阳县| 贡山| 正宁县| 正蓝旗| 翁牛特旗| 饶阳县| 正定县| 乳源| 邓州市| 清徐县| 县级市| 偃师市| 容城县| 石首市| 峨边| 余干县| 龙陵县| 忻州市| 武夷山市| 雅江县| 军事| 洞头县| 郓城县| 遂平县| 灵山县| 陆河县|