兩個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 眼鏡蛇 閱讀(3154) 評論(1)  編輯  收藏 所屬分類: Liferay

          評論

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

          ddd  回復  更多評論   

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

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

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新津县| 泽州县| 吕梁市| 南通市| 玉屏| 乌苏市| 沅陵县| 西青区| 赤壁市| 且末县| 张家港市| 溆浦县| 衡阳市| 米易县| 临武县| 池州市| 安徽省| 游戏| 东港市| 中西区| 宜川县| 恩施市| 东乌珠穆沁旗| 巍山| 胶州市| 北辰区| 黄山市| 武乡县| 长宁县| 资讯 | 金寨县| 长岛县| 涿鹿县| 十堰市| 右玉县| 上栗县| 浠水县| 永胜县| 雷波县| 于田县| 屯门区|