2013-03-07 70 views
7

我不同view-stateflow.xml。所有这些国家都有相同的看法。现在我想设置一个变量,其中只包含一个字符串,并在视图文件中调用它来自定义内容。
这里是我的文件:
flow.xml为例如两个视图状态的Web Flow中的简单变量

<view-state id="rcpm" view="rc/rcmembers.xhtml"> 
    <on-entry> 
     <evaluate expression="RCHtmlCache.getCommunityList('rcpm')" 
      result="flowScope.members" /> 
    </on-entry> 
</view-state> 

<view-state id="rcarch" view="rc/rcmembers.xhtml"> 
    <on-entry> 
     <evaluate expression="RCHtmlCache.getCommunityList('rcarch')" 
      result="flowScope.members" /> 
    </on-entry> 
</view-state> 

在这个文件中,我需要与视图状态ID值的变量,所以例如“rcarch”。

rcmembers.xhtml,我想打电话给变量

<p:panel id="panel" header="Memberslist of **Here comes the value of the variable"> 

希望你能理解我的问题的代码只是一部分...

回答

7

你有两个选择:

首先,你可以在流程定义级别定义,并将其暴露于直接的观点:

<on-entry> 
    <set name="flowScope.myView" value="flowRequestContext.currentState.id"/> 
</on-entry> 

或者你也可以通过流上下文的控制器,然后揭露它有:

<evaluate expression="RCHtmlCache.getCommunityList(flowRequestContext)" result="flowScope.members"/> 

在控制器:

public String getCommunityList(RequestContext context) { 
    context.getFlowScope().put("myView", context.getCurrentState().getId()); 
    ... 
} 

希望可以帮到

+0

BIG THANKS!你的第一个选项绝对完美!非常感谢!我不知道命令“flowRequestContext.currentState.id”。最后:)再次感谢!帮助我很多! – 2013-03-08 07:35:38

+1

欢迎您:-)刚刚在Spring Web Flow 2中发表了一篇关于沟通的文章。对于这个案例和其他相关案例可能有用:[blog](http://xpadro.blogspot.com.es/2013/04/通信功能于弹簧的Webflow-2.HTML) – xpadro 2013-04-04 08:58:47

2

为什么不创建此子流视图状态?

这样你就可以为你输入一个变量并从任何地方调用它。不需要有多个相同的视图状态。

+0

我有一种情况,其中,我需要从一个流程跳转到另一个子流来来回回,我做的是使用'<子流状态>' 。我的问题是,使用该特定流程的''定义的变量是否在每次调用流程或仅调用一次时实例化? – 2018-01-15 09:29:06

+0

如果var处于子流程中,则每次调用 – rptmat57 2018-01-15 13:40:29

4

有些用户问我这个问题后,如何设置一个带有String值的简单变量。因此,xpadro帮助我很多,但一些用户点击这个问题,知道如何设置一个简单的变量与字符串值。所以,我想也张贴在这里的答案是:
通过xpadro使用的代码,只是您要在'包围的字符串替换值:

<set name="viewScope.variable" value="'String you want'" /> 

xpadro表示,set标签应该留在on-entry内...
要知道您应该使用哪个Scope,请查看http://static.springsource.org/spring-webflow/docs/2.0.x/reference/html/ch03s05.html

希望我能帮助别人与:)