I saw too that in your start.jsp page you used: <s:property value="model.page" />
Which I don't know if will work. Actions that implements ModelDriven interface push the model into the value stack, so you don't need to write "model.page", but only "page". I will eventually publish my current implementation... 2008/5/22, Canny Duck <[EMAIL PROTECTED]>: > > I tried to change to order of the interceptors, but without any success. > The model is still not set. > > You implemented the post-redirect-get pattern in your own implementation? > Is it possible to publish your implementation? > > > Gabriel Belingueres-2 wrote: > > > > I certainly did not use any of these conversation implementations (I > > decided to write my own) but I suspect that you have defined the > > interceptors in the opposite order: I think you should first set to > > execute the defaultStack and then call the conversation interceptor. > > > > 2008/5/22, Canny Duck <[EMAIL PROTECTED]>: > >> > >> Hi, > >> > >> I want to implement a process with more than one step and a model in a > >> conversation scope. > >> To realize that I used the Struts 2 scope plugin. > >> > >> To implement the post-redirect-get pattern I have a result type of > >> "redirect-action". This behave is required. > >> > >> The attached demo implementation worked fine, if the model property and > >> the > >> getter setter method > >> is part of the called action. But if the model is declared in a > >> BaseAction, > >> the model will not be set on the Value Stack > >> and the property model.page ist no set. It's think it's not a bug in the > >> scope plugin, because a > >> tried this > >> http://www.vitarara.org/cms/struts_2_cookbook/using_a_conversation_scope > >> ConversationInterceptor and have the same problems. > >> > >> Here are the main classes of my demo process. You can test the attached > >> demo > >> project to see the problem: > >> > >> Action: > >> > >> public class TestAction extends BaseAction<Model> { > >> > >> // Working version without a BaseAction > >> //public class TestAction extends ActionSupport { > >> // > >> // @In(scope = ScopeType.CONVERSATION) > >> // @Out(scope = ScopeType.CONVERSATION) > >> // protected Model model; > >> // > >> // public Model getModel() { > >> // return model; > >> // } > >> // > >> // public void setModel(Model model) { > >> // this.model = model; > >> // } > >> > >> @Begin > >> public String start() { > >> model = new Model(); > >> model.setPage(1); > >> return SUCCESS; > >> } > >> > >> @End > >> public String end() { > >> return "success"; > >> } > >> } > >> > >> BaseAction: > >> > >> public class BaseAction<TYPE> extends ActionSupport > >> { > >> @In(scope = ScopeType.CONVERSATION) > >> @Out(scope = ScopeType.CONVERSATION) > >> protected TYPE model; > >> > >> public TYPE getModel() { > >> return model; > >> } > >> > >> public void setModel(TYPE model) { > >> this.model = model; > >> } > >> } > >> > >> Model: > >> > >> public class Model > >> { > >> private int page; > >> > >> public int getPage() { > >> return page; > >> } > >> > >> public void setPage(int page) { > >> this.page = page; > >> } > >> } > >> > >> struts.xml: > >> > >> <?xml version="1.0" encoding="UTF-8" ?> > >> <!DOCTYPE struts PUBLIC > >> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" > >> "http://struts.apache.org/dtds/struts-2.0.dtd"> > >> > >> <struts> > >> > >> <constant name="struts.devMode" value="true" /> > >> > >> <package name="test" namespace="/" extends="struts-default"> > >> > >> <interceptors> > >> <interceptor name="bean-scope" > >> class="com.googlecode.scopeplugin.ScopeInterceptor" /> > >> </interceptors> > >> > >> <action name="start" class="example.ui.TestAction" method="start"> > >> <interceptor-ref name="bean-scope" /> > >> <interceptor-ref name="defaultStack" /> > >> <result name="success" > >> type="redirect-action">/success</result> > >> </action> > >> > >> <action name="success" class="example.ui.TestAction"> > >> <interceptor-ref name="bean-scope" /> > >> <interceptor-ref name="defaultStack" /> > >> <result name="success">/test/start.jsp</result> > >> </action> > >> > >> <action name="end" class="example.ui.TestAction" method="end"> > >> <interceptor-ref name="bean-scope" /> > >> <interceptor-ref name="defaultStack" /> > >> <result name="success">/test/end.jsp</result> > >> </action> > >> > >> > >> </package> > >> </struts> > >> > >> start.jsp: > >> > >> <%@ page contentType="text/html; charset=UTF-8"%> > >> <%@ taglib prefix="s" uri="/struts-tags"%> > >> > >> <html> > >> <head> > >> <title>Start</title> > >> </head> > >> > >> <body> > >> <s:form action="end"> > >> <!-- page is only set if no base action is used--> > >> Page: <s:property value="model.page" /> > >> <s:submit value="End" /> > >> </s:form> > >> </body> > >> </html> > >> > >> http://www.nabble.com/file/p17404381/testapp.zip testapp.zip > >> -- > >> View this message in context: > >> http://www.nabble.com/model-conversation-scope-doesn%27-t-work-as-property-in-a-base-action-class-tp17404381p17404381.html > >> Sent from the Struts - User mailing list archive at Nabble.com. > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > View this message in context: > http://www.nabble.com/model-conversation-scope-doesn%27-t-work-as-property-in-a-base-action-class-tp17404381p17405367.html > Sent from the Struts - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]