2013-03-07 25 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

希望我能幫助別人與:)