ビジネスロジックを呼び出すのに最適な場所は? 次の要件があります。
1)。ユーザーから検索条件を取得する
2)。現在のユーザーが許可されていない結果を検索しようとすると、ビジネス例外がスローされます
3)。結果を取得する
4)。結果数==0の場合は、再度検索ページに行き、メッセージを入力してください。
5)。検索結果の数が制限を超えている場合は、再度検索ページに移動してメッセージを入力してください。
6)。ショー結果ページに移動します。
これは私がこれまでに持っているものです...
<flow....>
<on-start>
<evaluate expression="appConfig.setUpSupportData()" result="flowScope.supportData"/>
</on-start>
<view-state id="searchHome" view="searchHome" model="searchCriteria">
<transition on="search" to="doSearch"/>
</view-state>
<action-state id="doSearch">
<evaluate expression="searchUtil.getSearchResults(flowScope.searchCriteria)" result="flowScope.personList"/>
<evaluate expression="searchUtil.showSearchResults(flowScope.personList, flowRequestContext)" >
<attribute name="name" value="expression2"/>
</evaluate>
<transition on="expression2.yes" to="showSearchResults"/>
<transition on="expression2.no" to="searchHome"/>
</action-state>
<view-state id="showSearchResults"></view-state>
</flow>
私の質問は、action-stae または view-state="showSearchResults" で getSearchResults() メソッドを呼び出す必要があるかどうかです。action-stae でメソッドを呼び出した場合、2 番目のビューが結果を取得できるように、検索結果をフロースコープに配置する必要があります。このシナリオではメモリが心配です。2 番目の view-on-entry でメソッドを呼び出すと、personList を viewscope に入れることができますが、ケース 2、4、および 5 をどのように処理すればよいでしょうか?
前もって感謝します!