我正在尝试通过Flow传递变量。我是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>
Apex Class
public class testController{
public Flow.Interview.testFlow myFlow {get; set;}
public testController() {
public PageReference actionMethod() {
return null;
}
public String inputValue { get; set; }
}
当我单击按钮刷新变量时,输出文本会刷新,但它不接受参数中的变量值。我可以硬编码并传递它。
答案 0 :(得分: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>
Apex控制器
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;
}
}