兩個(gè)portlet之間跳轉(zhuǎn)并傳值

          在不同的Portlet之間傳參數(shù),這想這是所有用Liferay的人都想實(shí)現(xiàn)的,但在以前的版本中確實(shí)做不到。現(xiàn)在的版本可以了,并且很簡(jiǎn)單
           
          首先,打開(kāi)portlet.xml文件,找到你想實(shí)現(xiàn)傳值和接收值的portlet片段,在每個(gè)片段中加上下面這行代碼:
          <supported-public-render-parameter>參數(shù)名</supported-public-render-parameter>
          然后,在最后面定義這個(gè)參數(shù),寫(xiě)法是這樣的:
          <public-render-parameter>
            <identifier>參數(shù)名</identifier>
            <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:參數(shù)名</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>
          對(duì)參數(shù)進(jìn)行賦值的話,就是在Action中用下面這句話:
          actionResponse.setRenderParameter("參數(shù)名", 參數(shù)值);
          獲取的話,就直接像取其它參數(shù)一下直接獲取:
          在Action中,String 變量 = ParamUtil.getString(request, "參數(shù)名", "默認(rèn)值");
          在JSP中,<%=renderRequest.getParameter("參數(shù)名")%>
           
          整體代碼如下:
          /**
           * 
          @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", "");

                  //順便說(shuō)一下,這一行,可以實(shí)現(xiàn)通過(guò)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) 評(píng)論(1)  編輯  收藏 所屬分類: Liferay

          評(píng)論

          # re: 兩個(gè)portlet之間跳轉(zhuǎn)并傳值[未登錄](méi) 2014-09-26 09:07 dd

          ddd  回復(fù)  更多評(píng)論   

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 滁州市| 岫岩| 商水县| 麟游县| 阿荣旗| 竹山县| 江安县| 长海县| 兴仁县| 石家庄市| 青龙| 延津县| 平和县| 濮阳县| 安达市| 嵊泗县| 义乌市| 珲春市| 樟树市| 巢湖市| 乐东| 丹寨县| 定安县| 顺昌县| 宣武区| 安阳市| 桦川县| 拉孜县| 青岛市| 犍为县| 石狮市| 理塘县| 山阴县| 咸丰县| 深水埗区| 沐川县| 剑阁县| 昂仁县| 玛纳斯县| 慈溪市| 迁安市|