yfmoan
Jun 21st, 2005, 09:46 PM
Hi ,
l cannot get back a command that put in a flow scope , according to Keith , it suppose to "stay there for the life of the flow".
l wish to do the following ,
l first search a list of publishers for edit , after a successful search , l pick a publisher for edit , show the edit page then edit and submit . After a successful edit , l wish to immediately display back the original search for user experience ...so l need the original command --> googleSortCommand for my case , but l cannot get it , may be my code problem .... below is my codes snippet ,
public class BookRelatedActions extends AbstractLibraryFormAction {
private static final String GOOGLE_SORT_COMMAND = "googleSortCommand";
public BookRelatedActions() {
setFormObjectName(GOOGLE_SORT_COMMAND);
setFormObjectClass(GoogleSortCommand.class);
//l set <property name="formObjectScopeAsString" value="flow"/> in xxx.servlet.xml
}
...
public Event SearchPublisher(RequestContext context) throws Exception {
GoogleSortCommand googleSortCommand = (GoogleSortCommand)context.getFlowScope().get(GOOG LE_SORT_COMMAND);
String publisherName = googleSortCommand.getKeyword();
String sortColumn = googleSortCommand.getSortColumn();
System.out.println("-------"+publisherName+"--------");
System.out.println("^^^^^^^^"+sortColumn+"^^^^^^^^");
if(publisherName != null){
Map model = getLibrary().findPublishersByNameWithTotal(googleS ortCommand);
ArrayList publishers = (ArrayList)model.get("_resultset");
if (publishers.size() < 1) {
// no item found
writeMessage(context,"NoPublihserFound","no.publisher.found");
return success();
}
// multiple items found
context.getRequestScope().setAttribute("Publishers", model);
return success();
}
return success();
}
}
System.out.println("-------"+publisherName+"--------");
System.out.println("^^^^^^^^"+sortColumn+"^^^^^^^^");
show nulls ... no original form object return.
bookRelated-flow.xml,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN"
"http://www.springframework.org/dtd/spring-webflow.dtd">
<webflow id="bookRelated.Flow" start-state="bookRelated.start">
<view-state id="bookRelated.start" view="bookRelated.view">
<transition on="showPublisherForm" to="AddPublisherForm"/>
<transition on="searchPublisherById" to="publisher.Update.Flow"/>
<transition on="deletePublisher" to="DeletePublisher"/>
<transition on="searchAuthor" to="SearchAuthor">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchPublisher" to="SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSubject" to="SearchSubject">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchOtherTitle" to="SearchOtherTitle">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSeries" to="SearchSeries">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchNote" to="SearchNote">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
</view-state>
<view-state id="AddPublisherForm" view="publisher.Create">
<transition on="add" to="bindAndValidate.SaveForm"/>
<transition on="searchAuthor" to="SearchAuthor">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchPublisher" to="SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSubject" to="SearchSubject">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchOtherTitle" to="SearchOtherTitle">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSeries" to="SearchSeries">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchNote" to="SearchNote">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
</view-state>
<action-state id="bindAndValidate.SaveForm">
<action bean="publisherActions" method="bindAndValidate"/>
<transition on="success" to="SavePublisher"/>
<transition on="error" to="AddPublisherForm"/>
</action-state>
<action-state id="SavePublisher">
<action name="Save" bean="publisherActions"/>
<transition on="Save.success" to="AddPublisherForm"/>
<transition on="Save.error" to="AddPublisherForm"/>
</action-state>
<subflow-state id="publisher.Update.Flow" flow="publisher.Update.Flow">
<attribute-mapper>
<input value="${sourceEvent.parameters.id}" as="id" type="long"/>
</attribute-mapper>
<transition on="finish" to="bookRelated.start"/>
<transition on="finish.edit.publisher" to="SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="_SearchAuthor" to="SearchAuthor"/>
<transition on="_SearchPublisher" to="SearchPublisher"/>
<transition on="_SearchSubject" to="SearchSubject"/>
<transition on="_SearchOtherTitle" to="SearchOtherTitle"/>
<transition on="_SearchSeries" to="SearchSeries"/>
<transition on="_SearchNote" to="SearchNote"/>
<transition on="error" to="bookRelated.start"/>
</subflow-state>
<action-state id="DeletePublisher">
<action bean="publisherActions"/>
<transition on="success" to="bookRelated.start"/>
<transition on="error" to="bookRelated.start"/>
</action-state>
<action-state id="SearchAuthor">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchPublisher">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchSubject">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchOtherTitle">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchSeries">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchNote">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
</webflow>
subflow - publisher.Update-flow.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN"
"http://www.springframework.org/dtd/spring-webflow.dtd">
<webflow id="publisher.Update.Flow" start-state="SearchPublisherById">
<action-state id="SearchPublisherById">
<action bean="publisherActions"/>
<transition on="success" to="publisher.edit"/>
<transition on="error" to="finish"/>
</action-state>
<view-state id="publisher.edit" view="publisher.Update">
<transition on="edit" to="bindAndValidate.EditForm"/>
<transition on="back" to="finish"/>
<transition on="searchAuthor" to="_SearchAuthor">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchPublisher" to="_SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSubject" to="_SearchSubject">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchOtherTitle" to="_SearchOtherTitle">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSeries" to="_SearchSeries">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchNote" to="_SearchNote">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
</view-state>
<action-state id="bindAndValidate.EditForm">
<action bean="publisherActions" method="bindAndValidate"/>
<transition on="success" to="EditPublisher"/>
<transition on="error" to="publisher.edit"/>
</action-state>
<action-state id="EditPublisher">
<action bean="publisherActions"/>
<transition on="success" to="finish.edit.publisher"/>
<transition on="error" to="publisher.edit"/>
</action-state>
<end-state id="finish"/>
<end-state id="finish.edit.publisher"/>
<end-state id="_SearchAuthor"/>
<end-state id="_SearchPublisher"/>
<end-state id="_SearchSubject"/>
<end-state id="_SearchOtherTitle"/>
<end-state id="_SearchSeries"/>
<end-state id="_SearchNote"/>
</webflow>
moon
l cannot get back a command that put in a flow scope , according to Keith , it suppose to "stay there for the life of the flow".
l wish to do the following ,
l first search a list of publishers for edit , after a successful search , l pick a publisher for edit , show the edit page then edit and submit . After a successful edit , l wish to immediately display back the original search for user experience ...so l need the original command --> googleSortCommand for my case , but l cannot get it , may be my code problem .... below is my codes snippet ,
public class BookRelatedActions extends AbstractLibraryFormAction {
private static final String GOOGLE_SORT_COMMAND = "googleSortCommand";
public BookRelatedActions() {
setFormObjectName(GOOGLE_SORT_COMMAND);
setFormObjectClass(GoogleSortCommand.class);
//l set <property name="formObjectScopeAsString" value="flow"/> in xxx.servlet.xml
}
...
public Event SearchPublisher(RequestContext context) throws Exception {
GoogleSortCommand googleSortCommand = (GoogleSortCommand)context.getFlowScope().get(GOOG LE_SORT_COMMAND);
String publisherName = googleSortCommand.getKeyword();
String sortColumn = googleSortCommand.getSortColumn();
System.out.println("-------"+publisherName+"--------");
System.out.println("^^^^^^^^"+sortColumn+"^^^^^^^^");
if(publisherName != null){
Map model = getLibrary().findPublishersByNameWithTotal(googleS ortCommand);
ArrayList publishers = (ArrayList)model.get("_resultset");
if (publishers.size() < 1) {
// no item found
writeMessage(context,"NoPublihserFound","no.publisher.found");
return success();
}
// multiple items found
context.getRequestScope().setAttribute("Publishers", model);
return success();
}
return success();
}
}
System.out.println("-------"+publisherName+"--------");
System.out.println("^^^^^^^^"+sortColumn+"^^^^^^^^");
show nulls ... no original form object return.
bookRelated-flow.xml,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN"
"http://www.springframework.org/dtd/spring-webflow.dtd">
<webflow id="bookRelated.Flow" start-state="bookRelated.start">
<view-state id="bookRelated.start" view="bookRelated.view">
<transition on="showPublisherForm" to="AddPublisherForm"/>
<transition on="searchPublisherById" to="publisher.Update.Flow"/>
<transition on="deletePublisher" to="DeletePublisher"/>
<transition on="searchAuthor" to="SearchAuthor">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchPublisher" to="SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSubject" to="SearchSubject">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchOtherTitle" to="SearchOtherTitle">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSeries" to="SearchSeries">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchNote" to="SearchNote">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
</view-state>
<view-state id="AddPublisherForm" view="publisher.Create">
<transition on="add" to="bindAndValidate.SaveForm"/>
<transition on="searchAuthor" to="SearchAuthor">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchPublisher" to="SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSubject" to="SearchSubject">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchOtherTitle" to="SearchOtherTitle">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSeries" to="SearchSeries">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchNote" to="SearchNote">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
</view-state>
<action-state id="bindAndValidate.SaveForm">
<action bean="publisherActions" method="bindAndValidate"/>
<transition on="success" to="SavePublisher"/>
<transition on="error" to="AddPublisherForm"/>
</action-state>
<action-state id="SavePublisher">
<action name="Save" bean="publisherActions"/>
<transition on="Save.success" to="AddPublisherForm"/>
<transition on="Save.error" to="AddPublisherForm"/>
</action-state>
<subflow-state id="publisher.Update.Flow" flow="publisher.Update.Flow">
<attribute-mapper>
<input value="${sourceEvent.parameters.id}" as="id" type="long"/>
</attribute-mapper>
<transition on="finish" to="bookRelated.start"/>
<transition on="finish.edit.publisher" to="SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="_SearchAuthor" to="SearchAuthor"/>
<transition on="_SearchPublisher" to="SearchPublisher"/>
<transition on="_SearchSubject" to="SearchSubject"/>
<transition on="_SearchOtherTitle" to="SearchOtherTitle"/>
<transition on="_SearchSeries" to="SearchSeries"/>
<transition on="_SearchNote" to="SearchNote"/>
<transition on="error" to="bookRelated.start"/>
</subflow-state>
<action-state id="DeletePublisher">
<action bean="publisherActions"/>
<transition on="success" to="bookRelated.start"/>
<transition on="error" to="bookRelated.start"/>
</action-state>
<action-state id="SearchAuthor">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchPublisher">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchSubject">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchOtherTitle">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchSeries">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
<action-state id="SearchNote">
<action bean="bookRelatedActions"/>
<transition on="success" to="bookRelated.start"/>
</action-state>
</webflow>
subflow - publisher.Update-flow.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN"
"http://www.springframework.org/dtd/spring-webflow.dtd">
<webflow id="publisher.Update.Flow" start-state="SearchPublisherById">
<action-state id="SearchPublisherById">
<action bean="publisherActions"/>
<transition on="success" to="publisher.edit"/>
<transition on="error" to="finish"/>
</action-state>
<view-state id="publisher.edit" view="publisher.Update">
<transition on="edit" to="bindAndValidate.EditForm"/>
<transition on="back" to="finish"/>
<transition on="searchAuthor" to="_SearchAuthor">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchPublisher" to="_SearchPublisher">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSubject" to="_SearchSubject">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchOtherTitle" to="_SearchOtherTitle">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchSeries" to="_SearchSeries">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
<transition on="searchNote" to="_SearchNote">
<action bean="bookRelatedActions" method="bindAndValidate"/>
</transition>
</view-state>
<action-state id="bindAndValidate.EditForm">
<action bean="publisherActions" method="bindAndValidate"/>
<transition on="success" to="EditPublisher"/>
<transition on="error" to="publisher.edit"/>
</action-state>
<action-state id="EditPublisher">
<action bean="publisherActions"/>
<transition on="success" to="finish.edit.publisher"/>
<transition on="error" to="publisher.edit"/>
</action-state>
<end-state id="finish"/>
<end-state id="finish.edit.publisher"/>
<end-state id="_SearchAuthor"/>
<end-state id="_SearchPublisher"/>
<end-state id="_SearchSubject"/>
<end-state id="_SearchOtherTitle"/>
<end-state id="_SearchSeries"/>
<end-state id="_SearchNote"/>
</webflow>
moon