Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用不同的操作实现重用SpringWebflow定义_Java_Spring_Spring Webflow - Fatal编程技术网

Java 使用不同的操作实现重用SpringWebflow定义

Java 使用不同的操作实现重用SpringWebflow定义,java,spring,spring-webflow,Java,Spring,Spring Webflow,我得到了相当大的webflow定义,我不想为了重用而复制/粘贴它。XML中有对ActionBean的引用,这很自然 我想两次使用相同的流定义:第二次使用不同配置的操作(向其中注入不同的服务实现) 有没有简单的方法可以做到这一点 问题是,我想在同一个应用程序中同时对不同的bean使用相同的流。复制/粘贴不好,但我现在还没有看到其他解决方案。我认为您不能使用相同的webflow定义,以两种不同的方式配置操作 如果你想使用不同的操作,你要么重新配置你的操作bean,然后重新部署你的应用,要么用不同配

我得到了相当大的webflow定义,我不想为了重用而复制/粘贴它。XML中有对ActionBean的引用,这很自然

我想两次使用相同的流定义:第二次使用不同配置的操作(向其中注入不同的服务实现)

有没有简单的方法可以做到这一点



问题是,我想在同一个应用程序中同时对不同的bean使用相同的流。复制/粘贴不好,但我现在还没有看到其他解决方案。

我认为您不能使用相同的webflow定义,以两种不同的方式配置操作

如果你想使用不同的操作,你要么重新配置你的操作bean,然后重新部署你的应用,要么用不同配置的bean创建一个单独的webflow定义


是一个很棒的Spring WebFlow资源。

我不认为您可以使用相同的WebFlow定义,以两种不同的方式配置操作

如果你想使用不同的操作,你要么重新配置你的操作bean,然后重新部署你的应用,要么用不同配置的bean创建一个单独的webflow定义


是一个很棒的Spring WebFlow资源。

您可以尝试创建一个新的流,扩展“相当大的流”,并向其中添加flowExecutionListeners

接口“FlowExecutionListener”为流执行中的以下事件定义方法:

  • 请求提交
  • 请求处理
  • 会话创建
  • 会议开始
  • 会议开始
  • 事件信号
  • 过渡执行
  • 国家进入
  • 视图渲染
  • 视图渲染
  • 州政府
  • 停顿
  • 恢复
  • 会话
  • 会期
  • 例外Rown
您可以编写一个处理程序,将所需资源注入到您的流中(并对不同的流使用不同的句柄),方法是将其存储在RequestContext中,您可以在流定义中访问它


请注意,在这种情况下,您仍然需要修改“相当大的流”以使用这些资源,而不是直接引用bean。

您可以尝试创建一个新的流来扩展“相当大的流”,并向其中添加flowExecutionListeners

接口“FlowExecutionListener”为流执行中的以下事件定义方法:

  • 请求提交
  • 请求处理
  • 会话创建
  • 会议开始
  • 会议开始
  • 事件信号
  • 过渡执行
  • 国家进入
  • 视图渲染
  • 视图渲染
  • 州政府
  • 停顿
  • 恢复
  • 会话
  • 会期
  • 例外Rown
您可以编写一个处理程序,将所需资源注入到您的流中(并对不同的流使用不同的句柄),方法是将其存储在RequestContext中,您可以在流定义中访问它


请注意,在这种情况下,您仍然需要修改“相当大的流”来使用这些资源,而不是直接引用bean。

我的问题与您的问题相同……我有不同的子类,它们有相应的操作bean,但很多流都是相同的。在过去,我们只是复制和粘贴…不高兴! 我有一些想法,我将尝试使用表达式语言。首先,我提出了一个ActionBean工厂,它将返回用于给定类的正确的ActionBean,然后我可以调用该工厂来设置一个变量,我可以使用它来代替硬编码的bean名称

以下是流程的一部分:

<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"/>

最后一行中的evaluate通常直接引用bean,但现在它引用了我刚才所做的“set”的结果

好消息——正确的豆子会被调用

坏消息——流范围中的任何内容都需要可序列化,因此我得到一个NotSerializableException——argh

我可以尝试在一个非常短暂的作用域上设置一些东西,在这种情况下,它需要一直被调用……或者我可以找到某种代理,将真实bean作为声明为“暂时”的代理保存

顺便说一句,我使用的是Spring2.5.6和WebFlow2.0.7。以后的版本可能有更好的处理方法;特别是EL's似乎得到了一些关注。我仍然坚持使用OGNL,它是Spring 1.x EL


我相信一些webflow大师知道以一种不那么笨重的方式做事情的其他方法…

我与您处于相同的修复中…我有不同的子类,它们有相应的动作bean,但很多流都是相同的。在过去,我们只是复制和粘贴…不高兴! 我有一些想法,我将尝试使用表达式语言。首先,我提出了一个ActionBean工厂,它将返回用于给定类的正确的ActionBean,然后我可以调用该工厂来设置一个变量,我可以使用它来代替硬编码的bean名称

以下是流程的一部分:

<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"/>

最后一行中的evaluate通常直接引用bean,但现在它引用了我刚才所做的“set”的结果

好消息——正确的豆子会被调用

坏消息——流范围中的任何内容都需要可序列化,因此我得到一个NotSerializableException——argh

我可以尝试在一个非常短暂的作用域上设置一些东西,在这种情况下,它需要一直被调用……或者我可以找到某种代理,将真实bean作为声明为“暂时”的代理保存

顺便说一句,我使用的是Spring2.5.6和WebFlow2.0.7。以后的版本可能有更好的处理方法;特别是EL's似乎得到了一些关注。我仍然坚持使用OGNL,它是Spring 1.x EL

我相信一些webflow大师知道用更少的时间做事情的其他方法