首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据发送到人脸流?

如何将数据发送到人脸流?
EN

Stack Overflow用户
提问于 2013-09-11 13:46:15
回答 3查看 678关注 0票数 2

我的用例:用户以一种形式选择问卷。当表单提交时,开始显示问卷中的问题。

要将问卷发送到流中,我在流的bean中注入包含表单的页面的CDI。

我想知道是否有其他方法可以将问卷发送到流程中。如果有几种方法,最好的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-21 08:46:33

您可以通过表单传递参数,并在初始化流程时调用的初始化器方法中获取这些参数。

表单(只需将inputHidden参数替换为用于选择问卷的任何内容)

代码语言:javascript
运行
复制
<h:form id="myForm" prependId="false">
    <h:commandLink value="Enter myFlow" action="my-flow"/>
    <h:inputHidden id="parameter" name="parameter" value="8"/>
</h:form>

代码语言:javascript
运行
复制
@Produces @FlowDefinition
public Flow defineFlow(@FlowBuilderParameter FlowBuilder flowBuilder) {
String flowId = "my-flow";
    flowBuilder.id("", flowId);
    flowBuilder.initializer("#{myFlowBean.startFlow()}");
    ...
}

背豆

代码语言:javascript
运行
复制
@Named
@FlowScoped("my-flow")
public class MyFlowBean implements Serializable {

    public void startFlow() {
        String parameter = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("parameter");
    //now do sthg with the parameter, such as fetching the questionnaire
    ....
    }
}

有关更多细节,请参见this answer

票数 2
EN

Stack Overflow用户

发布于 2015-09-24 10:44:46

添加到“thomas.g”的有用答案:

我也遇到了同样的问题,但无法用hiddenInput方法修复它。尽管存在prependId="false“属性,但我使用的primefaces :dataTable元素更改了我的id和隐藏输入字段的名称。这个问题可以用h:commandLink元素中的f:param元素来解决:

代码语言:javascript
运行
复制
<h:commandLink value="Enter myFlow" action="my-flow" >
    <f:param name="parameter" value="8"/>
</h:commandLink>

我希望这对有类似问题的人有帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-03-01 07:27:59

这可以在流xml文件中使用初始化器标记来完成。

代码语言:javascript
运行
复制
   <initializer>
       #{myFlowBean.startFlow()}
   </initializer>

调用流作用域bean中的初始化方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18743007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档