9

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

<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">

希望你能理解我的问题...

4

3 回答 3

8

你有两个选择:

首先,您可以在流定义级别定义它并直接将其公开给视图:

<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());
   ...
}

希望有帮助

于 2013-03-07T15:49:06.633 回答
8

在这个问题之后,一些用户问我,如何使用字符串值设置一个简单的变量。所以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

希望我能帮助某人:)

于 2013-03-08T09:28:15.553 回答
2

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

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

于 2013-03-07T15:18:43.477 回答