0

我正在尝试通过 Flow 从 in 传递一个变量。我是 VisualForce 页面的新手,所以请原谅我的无知。

我为控制器和 VisualForce 页面附上了下面的代码。

VF 页面

<apex:page controller="testController">
    <apex:form>
        <apex:inputText value="{!inputValue}" id="textInput" />
        <apex:commandButton action="{!actionMethod}" reRender="myFlow" value="GO"/>
    </apex:form>

    <apex:variable var="input" value="Hello1" />
    <flow:interview name="testFlow" id="myFlow">
        <apex:param name="inputFromVF" value="{!inputValue}" />
        <apex:outputText value="{!inputValue}" />
    </flow:interview>
</apex:page>

顶点类

public class testController{

public Flow.Interview.testFlow myFlow {get; set;}
public testController() {

public PageReference actionMethod() {
    return null;
}


public String inputValue { get; set; }

}

当我单击按钮刷新变量时,输出文本会刷新,但它不接受参数中的变量值。我可以硬编码一些东西并通过它。

4

1 回答 1

1

睡了一夜之后,我想出了一个解决方案。我在首次运行 VF 页面时将流设置为未渲染,然后使用新变量渲染它并且它可以工作。它总是简单的答案。

代码如下。

VF 页面

<apex:page controller="testController">
<apex:form >
    <apex:inputText value="{!inputValue}" id="textInput" />
    <apex:commandButton action="{!actionMethod}" value="GO" reRender="flowPanel, myFlow">
    </apex:commandButton>
</apex:form>
    <apex:outputPanel id="flowPanel" rendered="true">

<apex:variable var="input" value="{!inputValue}" />
<apex:outputText value="{!inputValue}" />
    <flow:interview name="testFlow" id="myFlow" rendered="{!renderOrNot}">
        <apex:param name="inputFromVF" value="{!inputCti}" id="parameter" />
        <apex:outputText value="{!inputCti}" />
    </flow:interview>
</apex:outputPanel>

顶点控制器

public class testController{

public String inputValue { get; set; }
public Boolean renderPanel { get; set; }
public String inputCti { get; set; }
public Boolean renderOrNot { get; set; }

public Flow.Interview.testFlow testFlow {get; set;}

public String actionMethod() {
    renderOrNot = true;
    inputCti = inputValue;
    return null;        
}

}

于 2013-07-09T13:07:31.213 回答