Je suis dans le même correctif que vous êtes ... J'ai différentes sous-classes qui ont des beans d'action correspondants, mais une grande partie du flux est la même. Dans le passé, nous avons simplement copié et collé ... pas content de ça! J'ai quelques idées que je vais essayer d'utiliser le langage d'expression. Tout d'abord, je suis arrivé avec une usine de bean action qui retournera le bon bean d'action à utiliser pour une classe donnée, alors je peux appeler cette usine pour définir une variable que je peux utiliser à la place du nom de bean codé en dur.
est ici une partie du flux:
<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"/>
L'dans la dernière évaluer la ligne normalement se référer directement à un grain, mais maintenant il fait référence au résultat de la « set » Je viens de faire.
Bonnes nouvelles - le haricot droit est appelé.
Mauvaises nouvelles - tout ce qui se trouve dans la portée de flux doit être sérialisable, donc j'obtiens une exception NotSerializableException - arggh!
Je peux essayer de définir quelque chose sur une portée de très courte durée, auquel cas il devra être appelé tout le temps ... ou je peux trouver une sorte de proxy qui détient le vrai bean comme proxy déclaré "transitoire".
BTW, j'utilise Spring 2.5.6 et webflow 2.0.7. Les versions ultérieures peuvent avoir de meilleures façons de gérer cela; en particulier, les EL ont attiré l'attention, semble-t-il. Je suis toujours coincé avec OGNL, qui est le printemps 1.x EL.
Je suis sûr que certains gourou webflow connaît d'autres façons de faire les choses de façon moins maladroites ...
la question est maintenant si les haricots d'action sont :-) statefull ou sans état doivent vérifier –