[jboss-user] [JBoss Seam] - Re: Passing data between nested conversations
denis-karpov
do-not-reply at jboss.com
Thu Aug 9 03:56:18 EDT 2007
>From the nested conversation you have access to the parent conversation scope. You can't add or remove from the parent scope, but you can get a reference to an any object and you can change the state of this object.
Next thing you can do. You can pass parameters when you start nested conversation.
For instance, to choose link object I use nested conversation (old one, because I use 1.2.1 version)
In this way I start nested conversation
<a4j:commandLink value="#{messages['com.colvir.common.choose']}" action="#{refer.begin}" propagation="nest">
| <a4j:actionparam name="ref" value="#{refName}" assignTo="#{refer.refName}"/>
| <a4j:actionparam name="caption" value="#{caption}" assignTo="#{refer.caption}"/>
| <a4j:actionparam name="binding" value="#{binding}" assignTo="#{refer.binding}"/>
| <a4j:actionparam name="viewid" value="#{viewid}" assignTo="#{refer.viewid}"/>
| </a4j:commandLink>
|
In this way I return from nested to parent
public String select() {
| if (binding==null){
| throw new RuntimeException("Binding in reference can't be null");
| }
| Query r = getRef();
| if ( r==null ){
| throw new RuntimeException("Reference query can't be null");
| }
| Object o = r.getDataModel().getRowData();
|
| // End conversation and redirect to parent
| Conversation.instance().endAndRedirect(true);
| // Returning selected value
| Expressions.instance().createValueBinding("#{"+binding+"}").setValue(o);
| return null;
| }
|
| public String cancel() {
| Conversation.instance().endAndRedirect(true);
| return null;
| }
|
Actually, with composite pageflows everything has to be much simpler.
Denis.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4072354#4072354
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4072354
More information about the jboss-user
mailing list