2017-03-19 272 views
1

私はAurora Storeで作業しています。領域をリフレッシュするためのリフレッシュコントローラを作成しました。WCS AJAXはdojoとコントローラを使用してリフレッシュします

コントローラは初回のみ動作します。ページが最初にロードされたときに、リフレッシュコントローラを書き込んだボタンをクリックすると、その領域がリフレッシュされないと領域がリフレッシュされます。参照用

コード:JavaScriptファイル内のコンテキストを定義ボタン

1のクリック時に人物の詳細をページのセクションをリフレッシュするための

サンプルアプリケーション。コンテキストは、ハンドルとエリアをリフレッシュできるようになります、JSPファイルに設定されたコントローラのURLがこのdiv要素内

<div dojotype="wc.widget.RefreshArea" widgetid="RefreshAreaDisplay" 
       controllerid="CustomController" id="RefreshCustomAreaDisplay" role="wairole:region" 
       waistate:live="polite" waistate:atomic="false" waistate:relevant="all"> 

をリフレッシュする必要のある領域の前にDIV

wc.render.declareContext("MyAreaContext",null,""), 
    SBControllersDeclarationJS.setControllerURL('CustomController','<c:out value="${AjaxCustomInformationViewURL}"/>'); 

2.入れ以下は内容です

${person.email1} 

     ${person.firstName} ${person.lastName} 

     ${person.addressLine[0]} 

     ${person.country} 
        </div> 

3.アップデートCをトリガーするイベント(ボタンクリック)

<a role="button" 
         id="WC_Custom_links_1" tabindex="0" 
         href="JavaScript:CustomHelper.updateInfo();  wc.render.updateContext('CustomAreaContext');"> 

ontext機能「updateInfoは」細かいクリックするたびに取り組んでいるが、リフレッシュは、最初の時間後に機能していません。

4のStruts-config設定-ext.xml

<forward className="com.ibm.commerce.struts.ECActionForward" name="CurrentCustomView/47401" path="/ShoppingArea/CustomInfo.jsp"/> 

5.URL建設

<wcf:url var="AjaxCustomInformationViewURL" value="CurrentCustomView" type="Ajax"> 
        <wcf:param name="langId" value="${langId}" />       
        <wcf:param name="storeId" value="${WCParam.storeId}" /> 
       <wcf:param name="catalogId" value="${WCParam.catalogId}" /> 
       <wcf:param name="orderId" value="${currentOrderId}" /> 
      </wcf:url> 

6.コントローラーの定義:ここで呼び出されるURLは、としてそれを保持これはクライアントjspで更新されるためnullです

  <script type="text/javascript"> 
       wc.render.declareRefreshController({ 
       id: "CustomController", 
       renderContext: wc.render.getContextById("CustomAreaContext"), 
       url: "", 
      formId: "" 
      ,modelChangedHandler: function(message, widget) { 

       var controller = this; 
       var renderContext = this.renderContext; 
       widget.refresh(renderContext.properties); 
       cursor_clear(); 


      } 
      ,renderContextChangedHandler: function(message, widget) { 

      var controller = this; 
      var renderContext = this.renderContext; 
      widget.refresh(renderContext.properties); 
      cursor_clear(); 

     } 
     ,postRefreshHandler: function(widget) { 
     var controller = this; 
     var renderContext = this.renderContext; 
     cursor_clear(); 

     } 
     }); 
    </script> 

7. CustomInfo.jsp

<wcf:rest var="person" url="store/{storeId}/person/@self" 
      scope="request"> 
      <wcf:var name="storeId" value="${WCParam.storeId}" encode="true" /> 
</wcf:rest> 

     ${person.email1} 

     ${person.firstName} ${person.lastName} 

答えて

0

問題は解決しました。私は間違った名前でウィジェットを解析していました。

関連する問題