繁体   English   中英

JSF-2.2 Faces Flows返回值/集群/流返回

[英]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 ,您可以用它存储几乎任何您想要的东西,它的内容在当前流程的范围内可用。

  1. 举例来说,您已经从流A导航到流B。现在,您想从流B导航回到流A 并将参数传递回流A。您需要在流定义文件中为流A(参数目标流 ),将要传递的参数定义为入站

      <inbound-parameter> <name>returnParameterFromB</name> <value>#{flowScope.returnParameter}</value> </inbound-parameter> 
  2. 在参数源流 (流B)的流配置文件中将所需参数定义为出站

      <outbound-parameter> <name>returnParameterFromB</name> <value>#{flowB.returnParameter}</value> </outbound-parameter> 
  3. 在流程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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM