2011-09-06 8 views
4

"from-outcome"をBIRTレポートファイル(.rptdesign拡張子)が拡張子を.jsfとして追加します。マイナビルールは、ダイレクト非.jsfページ( "to-view-id"は.jsfではない)にjsf "navigation-rule"を使用する方法

<!-- home.xhtml page --> 
<navigation-rule> 
    <from-view-id>/home.xhtml</from-view-id> 
    <!-- navigate to group report --> 
    <navigation-case> 
     <from-outcome>GROUP_REPORT</from-outcome> 
     <to-view-id>frameset?__report=report/new_report_group.rptdesign&amp;__overwrite=true&amp;</to-view-id> 
     <redirect> 
      <view-param> 
       <name>Job Location</name> 
       <value>#{homeController.jobLocation}</value> 
      </view-param> 
     </redirect> 
    </navigation-case> 
</navigation-rule> 

ですそれから私は http://192.168.3.111:8080/imc-report-system-1.0/frameset?__report=report%2Fnew_report_group.jsf&Job%20Location=abc 、その結果のURLを得たが、それは http://192.168.3.111:8080/imc-report-system-1.0/frameset?__report=report%2Fnew_report_group.rptdesign&Job%20Location=abc 、などのおかげでなければなりません。

+0

「web.xml」で 'extension-mapping'を削除しようとしたのですか? 'FacesServlet'を' * .jsf'ではなく '*'の 'url-pattern'にマッピングしますか? –

+0

@BheshG、多くのご返信ありがとうございますが、それはその変更にはうまくいきません:(おかげで) – Channa

+0

URLをサーブレットフィルタで書き直しましたが、最適化ソリューションではないと思います。 – Channa

答えて

4

JSFナビゲーション・ケースで非JSFビューにナビゲートすることはできません。

ExternalContext#redirect()を使用して自分自身をリダイレクトします。

public void submit() { 
    // ... 

    String url = "frameset" 
     + "?__report=report%2Fnew_report_group.rptdesign" 
     + "&amp;__overwrite=true" 
     + "&amp;Job%20Location=" + jobLocation; 

    FacesContext.getCurrentInstance().getExternalContext().redirect(url); 
} 
+0

ありがとう答えはたくさんあります。 – Channa