兩個portlet之間跳轉并傳值

          在不同的Portlet之間傳參數,這想這是所有用Liferay的人都想實現的,但在以前的版本中確實做不到?,F在的版本可以了,并且很簡單
           
          首先,打開portlet.xml文件,找到你想實現傳值和接收值的portlet片段,在每個片段中加上下面這行代碼:
          <supported-public-render-parameter>參數名</supported-public-render-parameter>
          然后,在最后面定義這個參數,寫法是這樣的:
          <public-render-parameter>
            <identifier>參數名</identifier>
            <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:參數名</qname>
           </public-render-parameter>
          整體是這樣
          <?xml version="1.0"?>

          <portlet-app
              
          version="2.0"
              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 http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
          >
              
                  
          <portlet>
                  
          <portlet-name>chartcontroler</portlet-name>
                  
          <display-name>ChartControler</display-name>
                  
          <portlet-class>
                      com.noah.action.ChartControlerPortlet
                  
          </portlet-class>
                  
          <init-param>
                      
          <name>view-jsp</name>
                      
          <value>/html/chartcontroler/view.jsp</value>
                  
          </init-param>
                  
          <expiration-cache>0</expiration-cache>
                  
          <supports>
                      
          <mime-type>text/html</mime-type>
                      
          <portlet-mode>VIEW</portlet-mode>
                  
          </supports>
                  
          <resource-bundle>content/Language</resource-bundle>
                  
          <portlet-info>
                      
          <title>ChartControler</title>
                      
          <short-title>ChartControlerPortlet</short-title>
                      
          <keywords></keywords>
                  
          </portlet-info>
                  
          <portlet-preferences>
                      
          <preference>
                          
          <name>years</name>
                          
          <value>2010,2011,2012</value>
                      
          </preference>
                  
          </portlet-preferences>
                  
          <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>
                  
          <supported-public-render-parameter>currentYear</supported-public-render-parameter>
                  
          <supported-public-render-parameter>report</supported-public-render-parameter>
                  
          <supported-public-render-parameter>partner</supported-public-render-parameter>
                  
          <supported-public-render-parameter>portfolio</supported-public-render-parameter>
              
          </portlet>
              
          <portlet>
                  
          <portlet-name>chart</portlet-name>
                  
          <display-name>Chart</display-name>
                  
          <portlet-class>com.noah.action.ChartPortlet</portlet-class>
                  
          <init-param>
                      
          <name>view-jsp</name>
                      
          <value>/html/chartportlet/view.jsp</value>
                  
          </init-param>
                  
          <expiration-cache>0</expiration-cache>
                  
          <supports>
                      
          <mime-type>text/html</mime-type>
                      
          <portlet-mode>VIEW</portlet-mode>
                  
          </supports>
                  
          <resource-bundle>content/Language</resource-bundle>
                  
          <portlet-info>
                      
          <title>Chart</title>
                      
          <short-title>ChartPortlet</short-title>
                      
          <keywords></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>
                  
          <supported-public-render-parameter>currentYear</supported-public-render-parameter>
                  
          <supported-public-render-parameter>report</supported-public-render-parameter>
                  
          <supported-public-render-parameter>partner</supported-public-render-parameter>
                  
          <supported-public-render-parameter>portfolio</supported-public-render-parameter>
              
          </portlet>
              
              
          <public-render-parameter>
                  
          <identifier>currentYear</identifier>
                  
          <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:currentYear</qname>
              
          </public-render-parameter>
              
          <public-render-parameter>
                  
          <identifier>report</identifier>
                  
          <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:report</qname>
              
          </public-render-parameter>
              
          <public-render-parameter>
                  
          <identifier>partner</identifier>
                  
          <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:partner</qname>
              
          </public-render-parameter>
              
          <public-render-parameter>
                  
          <identifier>portfolio</identifier>
                  
          <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:portfolio</qname>
              
          </public-render-parameter>
          </portlet-app>
          對參數進行賦值的話,就是在Action中用下面這句話:
          actionResponse.setRenderParameter("參數名", 參數值);
          獲取的話,就直接像取其它參數一下直接獲?。?/div>
          在Action中,String 變量 = ParamUtil.getString(request, "參數名", "默認值");
          在JSP中,<%=renderRequest.getParameter("參數名")%>
           
          整體代碼如下:
          /**
           * 
          @author noah.xiang
           
          */

          public class ChartControlerPortlet extends MVCPortlet {

              @Override
              
          public void processAction(ActionRequest actionRequest,
                      ActionResponse actionResponse) 
          throws IOException, PortletException {
                  String currentYear 
          = ParamUtil.getString(actionRequest, "currentYear""2010");
                  String report 
          = ParamUtil.getString(actionRequest, "report""");
                  String partner 
          = ParamUtil.getString(actionRequest, "partner""Bocholter Energie- und Wasserversorgung GmbH");
                  String portfolio 
          = ParamUtil.getString(actionRequest, "portfolio""");
                  
                  actionResponse.setRenderParameter(
          "currentYear", currentYear);
                  actionResponse.setRenderParameter(
          "report", report);
                  actionResponse.setRenderParameter(
          "partner", partner);
                  actionResponse.setRenderParameter(
          "portfolio", portfolio);
                  
          //actionResponse.setRenderParameter("jspPage", "/html/chartportlet/view.jsp");
                  super.processAction(actionRequest, actionResponse);
              }


              @Override
              
          public void render(RenderRequest request, RenderResponse response)
                      
          throws PortletException, IOException {
                  String currentYear 
          = ParamUtil.getString(request, "currentYear""2010");
                  String report 
          = ParamUtil.getString(request, "report""");
                  String partner 
          = ParamUtil.getString(request, "partner""");
                  String portfolio 
          = ParamUtil.getString(request, "portfolio""");

                  PortletPreferences prefs 
          = request.getPreferences();
                  String years 
          = prefs.getValue("years""2010,2011,2012");
                  
          //String portfolios = prefs.getValue("portfolios", "Absatzportfolio: A-a,Absatzportfolio: B-b,Absatzportfolio: C-c");
                  
          //String partners = prefs.getValue("partners", "");

                  //順便說一下,這一行,可以實現通過Session傳值,有興趣的可以研究一下
                  request.getPortletSession().setAttribute(DataPoolUtil.SESSION_SHARED_YEAR, currentYear, PortletSession.APPLICATION_SCOPE);

                  request.setAttribute(
          "years", years);
                  request.setAttribute(
          "portfolios", portfolio);
                  request.setAttribute(
          "currentYear", currentYear);
                  request.setAttribute(
          "report", report);
                  request.setAttribute(
          "partner", partner);
                  
          super.render(request, response);
              }

           

          }
           


          眼鏡蛇

          posted on 2011-10-27 18:36 眼鏡蛇 閱讀(3159) 評論(1)  編輯  收藏 所屬分類: Liferay

          評論

          # re: 兩個portlet之間跳轉并傳值[未登錄] 2014-09-26 09:07 dd

          ddd  回復  更多評論   

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          • 隨筆 - 14
          • 文章 - 64
          • 評論 - 41
          • 引用 - 0

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大姚县| 博罗县| 南陵县| 雷山县| 凤阳县| 涿州市| 罗源县| 新蔡县| 射洪县| 息烽县| 秀山| 永定县| 扬中市| 宣恩县| 江油市| 从化市| 湖南省| 江陵县| 建瓯市| 修水县| 凤山市| 恭城| 孝昌县| 乡宁县| 行唐县| 溆浦县| 东阳市| 临漳县| 乐陵市| 桃园县| 阳信县| 元谋县| 张北县| 沅江市| 腾冲县| 泸西县| 广灵县| 烟台市| 屏南县| 呼玛县| 苍梧县|