[英]JSF-2.2 Faces Flows Return value / cluster / flow return
我目前正在用JSF 2.2测试Java EE 7(只是为了好玩)。 尤其是新的Faces Flow看起来确实很棒,但是在我的PoC正常工作时遇到了一些麻烦。
问题:1.如果我从另一个调用流,是否可以检查当前流是否被另一个“调用”?
我发现的唯一解决方案是将特殊参数传递给子流
2.如果我通过-flow.xml内部的流调用定义调用另一个流(例如,可以选择某个用户的流)。 我如何将返回值传递给父流(例如,选定的用户)
3. Glassfish 4总是抱怨flowHandler将对象放入http会话中,该对象不可序列化。 这是一个错误吗? 如果不是,这是否意味着JSF2.2不可集群,如果集群节点崩溃,所有打开的流都将丢失?
问候
您对(1)的要求尚不完全清楚,但是FacesFlow确实提供了flowScope
,您可以用它存储几乎任何您想要的东西,它的内容在当前流程的范围内可用。
举例来说,您已经从流A导航到流B。现在,您想从流B导航回到流A ,并将参数传递回流A。您需要在流定义文件中为流A(参数目标流 ),将要传递的参数定义为入站 :
<inbound-parameter> <name>returnParameterFromB</name> <value>#{flowScope.returnParameter}</value> </inbound-parameter>
在参数源流 (流B)的流配置文件中将所需参数定义为出站
<outbound-parameter> <name>returnParameterFromB</name> <value>#{flowB.returnParameter}</value> </outbound-parameter>
在流程B中,必须通过EL分配将必要的值存储在flowScope
对象中:
<h:inputText value="#{flowB.returnParameter}"/>
或在支持的@FlowScoped
bean中:
FacesContext ctxt = FacesContext.getCurrentInstance(); Map<Object, Object> currentFlowScope = ctxt.getApplication().getFlowHandler().getCurrentFlowScope(); currentFlowScope.put("returnParameter","value");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.