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]

Reply via email to