2

私は SWF を初めて使用し、思いがけず SWF アプリケーションの保守を継承しました。

ユーザーには、画面上部に水平メニューがあり、5 つのオプションが表示されます。いずれかをクリックすると、ポートレットが画面にロードされます。

2 日前、私はタスクを受け取りました。ユーザーがこれらのオプションのいずれかをクリックするたびに、ポートレットは以前の状態を無視して再起動する必要があります。

例: ポートレットの 1 つは「SEARCH」と呼ばれ、もう 1 つは「REPORTS」と呼ばれます。現在、ユーザーが「SEARCH」をクリックすると、アプリは小さなフォームと「GO」ボタンを表示します。「GO」をクリックすると、アプリは結果のリストを表示し、それぞれに編集ボタンがあります。それらの 1 つをクリックして編集すると、appl は選択された結果の詳細を表示します。ここまでは順調ですね。

例を進めて、ユーザーがメニューの「レポート」オプションをクリックしたとします。appl は、独自のコンテンツを含むレポート ポートレットを表示します。繰り返しますが、これまでのところ、とても良いです。

ただし、ユーザーが「SEARCH」を再度クリックすると、ポートレットは最後の状態、つまり以前に検索されたアイテムのエディションを表示します。

この動作を変更するように依頼されたので、ユーザーが「SEARCH」をクリックするたびに空で開きます。つまり、ポートレットの Web フローが最初からやり直すようになります。

これどうやってするの?誰か助けてくれませんか?

SMF のドキュメントを検索し、spring-webflow-config-2.0.xsd ファイルも調べて、この場合の特定の構成を探しましたが、役に立ちませんでした。

ありがとう、

FQL

4

1 に答える 1

3

このアプローチを試してください:

フローにリダイレクトする一連の終了状態と、終了状態に遷移する一連のグローバル遷移を配置する新しいフロー定義 xml ファイルを作成します。そのため、メニュー項目ごとに 1 つの終了状態と 1 つのグローバル トランジションを追加する必要があります。

<end-state id="searchMenuItem" view="flowRedirect:searchFlowName" />

<end-state id="reportsMenuItem" view="flowRedirect:reportsFlowName" />    

<global-transitions>    
    <transition on="searchMenuItem" to="searchMenuItem" />      
    <transition on="reportsMenuItem" to="reportsMenuItem" />        
</global-transitions>

このフロー定義をフロー レジストリとすべてのフローに親として追加します。そのため、すべてのフローでその終了状態とグローバル遷移が表示される必要があります。

メニュー リンクを編集して、グローバル トランジションを使用します。

<a href="${flowExecutionUrl}&_eventId=searchMenuItem">Search</a>   
<a href="${flowExecutionUrl}&_eventId=reportsMenuItem">Reports</a>

これにより、ユーザーがメニュー項目をクリックすると、そのグローバル トランジションが起動し、最終エステートへのトランジションとフローが目的のフローにリダイレクトされます。

お役に立てれば。

于 2012-10-21T21:40:13.237 に答える