2017-02-17 4 views
0

応答しません。私が持っている2つの連続したアクションは、につながる場合も同じ<から-結果> outcomestring <から-結果>、したがって同じページ、もう一つは、私は12C JDEVにこの奇妙な問題に直面しています

このようADFC-config.xmlに定義:

<view id="mystring"> 
    <page>page_a.jspx</page> 
    <view-id>page_a.jspx</view-id> 
    <redirect/> 
    </view> 
<control-flow-case> 
    <from-outcome>mystring</from-outcome> 
    <to-activity-id>mystring</to-activity-id> 
</control-flow-case> 

と、この "のMyString" に関連するページpage_a.jspxです。

2つのメニューをクリックすると、上記の「ミストリング」、つまりpage_a.jspxが発生し、2つ目のメニューが全く反応していないように見えます。デバッグすると、page_a.jspxに関連付けられたコントローラクラスでは、onPagePreRender()のisPostBack()がtrueを返すため、2回目の訪問は「postBack」とみなされます。これは、2回目のpage_a.jspxがリロードされない理由です(リロードされた場合、一部のテキストは2回目に更新されます)。これを確認するために、2回目のクリック後に同じpage_a.jspxをリフレッシュし、page_a.jspxをテキストが更新された状態で更新しました。

私の質問ですが、これは予想される動作か、ADFの設計によるものではありませんか?いずれにしても、2回目の訪問でページをリロードする回避策はありますか?

おかげで、 ショーン

答えて

0

ただ答えを自分で見つける:コントローラクラスのonPagePreRender()メソッドでは、全体page_a.jspx(このURLから採取したサンプル・コード:http://adfblogspot.blogspot.ca/2012/06/how-to-reload-whole-jsfjspx-page-from.htmlを):リフレッシュ

public String refreshPage_action() { 
    FacesContext fctx = FacesContext.getCurrentInstance(); 
    String pageToRefresh = fctx.getViewRoot().getViewId(); //getting View Id of current page 
    ViewHandler viewHandler = fctx.getApplication().getViewHandler();  
    UIViewRoot viewRoot = viewHandler.createView(fctx, pageToRefresh); //ViewRoot for current page 
    viewRoot.setViewId(pageToRefresh); 
    fctx.setViewRoot(viewRoot);  //set the viewroot in facesContext to reload 
    return null; 
} 

コントローラクラス:

public void onPagePreRender() { 
    super.onPagePreRender(); 
// do you data update then call refreshPage_action() 
} 

この力ページ再読み込み毎回。

関連する問題

 関連する問題