Simple Variable in Web Flow
Solution 1
You have two options:
First, you can define it at flow definition level and expose it to the view directly:
<on-entry>
<set name="flowScope.myView" value="flowRequestContext.currentState.id"/>
</on-entry>
Or you could pass the flow context to the controller and then expose it there:
<evaluate expression="RCHtmlCache.getCommunityList(flowRequestContext)" result="flowScope.members"/>
On the controller:
public String getCommunityList(RequestContext context) {
context.getFlowScope().put("myView", context.getCurrentState().getId());
...
}
Hope that helps
Solution 2
Some users asked me after this question, how to set a simple variable with a String value. So the answer by xpadro helpds ME a lot, but some users click on this question to know how to set a simple variable with a string value. So I want to post here the answer also for that:
Use the code by xpadro and just replace the value with the string you want surrounded with '
:
<set name="viewScope.variable" value="'String you want'" />
Like xpadro said, the set
tag should stay inside the on-entry
...
And to know which Scope
you should use, take a look at http://static.springsource.org/spring-webflow/docs/2.0.x/reference/html/ch03s05.html.
Hope i can help someone with that :)
Solution 3
Why not create a subflow for this view-state?
This way you could have an input for you variable and call it from anywhere. No need to have multiple identical view states.
Michael Schmidt
Official: Frontend Developer - Interaction Designer - UX Specialist Work @ DV Bern in Switzerland, have a degree in Interaction Design Not-so-Official: Love Web Design, Photography and Graphic Design Skills in Web Stuff (HTML5, CSS3, JavaScript, WebGL), Photography (Photoshop, DSLR, not-Instagram), UX Design (Axure, Balsamiq, Research) and Graphic Design (Figma, Protopie, Angular-Prototyping, InVision) Not-Official-at-all: I love cats, food and beautiful things. In summer, i'm on festivals In winter, i'm not Social Facebook: won't share myself Twitter: link-save (@MJLSchmidt ). Google+: are there active users? Instagram: Hate it. Flickr: love it, but inactive. (Stalk me!) Website: mjls.ch
Updated on July 24, 2022Comments
-
Michael Schmidt almost 2 years
I've different
view-state
's in flow.xml. All of theses states have the same view. Now i want to set a variable which includes just a String und call it in the view-file to customize the content.
Here are my files:
flow.xml: for the example two of the view-state's<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>
In this file i need a variable with the value of the view-state ID, so e.g "rcarch".
rcmembers.xhtml just the part of the code where i want to call the variable
<p:panel id="panel" header="Memberslist of **Here comes the value of the variable">
Hope you understand my problem...
-
Michael Schmidt about 11 yearsBIG THANKS! Your first option works absolutely perfect! Thanks a lot! I didn't know the command "flowRequestContext.currentState.id". Finally :) Thanks Again! Helps me a lot!
-
xpadro about 11 yearsYou are welcome :-) Just made a post about communication in Spring Web Flow 2. It may be useful for this case and others related: blog
-
Nisarg Patil over 6 yearsI have a scenario wherein, I need to jump from one flow to another sub-flow to and fro, I am doing that using
<subflow-state>
. My question is whether the variables defined using<var>
of that particular flow gets instantiated everytime that flow is invoked or only once? -
rptmat57 over 6 yearsif the var is in the subflow, every time it is invoked