Я нахожусь в том же исправлении, что и вы ... У меня есть разные подклассы, которые имеют соответствующие бины действия, но много потоков одинаково. В прошлом мы только что скопировали и вставляли ... не довольные этим! У меня есть некоторые идеи, которые я собираюсь попробовать с использованием языка выражений. Во-первых, я придумал фабрику действий, которая вернет правильный компонент действия для использования для данного класса, а затем я могу вызвать эту фабрику, чтобы установить переменную, которую я могу использовать вместо жестко закодированного имени компонента.
Вот часть потока:
<action-state id="checkForParams">
<on-entry>
<set name="flowScope.clientKey" value="requestParameters.clientKey"/>
<set name="flowScope.viewReportBean"
value="reportActionFactory.getViewBean(reportUnit)"/>
</on-entry>
<evaluate expression="viewReportBean"/>
оценить в последней строке, как правило, относятся непосредственно к фасоли, но теперь он относится к результату «набор» Я только что сделал.
Хорошие новости - правильная боба вызвана.
Плохая новость - все в области потока должно быть Serializable, поэтому я получаю NotSerializableException - arggh!
Я могу попытаться установить что-то в очень короткой области действия, и в этом случае ему нужно будет вызываться все время ... или я могу выяснить какой-то прокси-сервер, который содержит реальный компонент в качестве прокси объявленного «переходный».
BTW, я использую Spring 2.5.6 и webflow 2.0.7. У более поздних версий могут быть лучшие способы обращения с этим; в частности, похоже, что ЭЛ привлекло некоторое внимание. Я все еще придерживаюсь OGNL, который является Spring 1.x EL.
Я уверен, что некоторая WebFlow гуру знает и другие способы ведения дел в менее неуклюжим способ ...
вопрос теперь, если бобы действий являются statefull или лицо без гражданства :-) нужно проверить – 2008-09-22 14:59:25