Let me see if I understand what you say. 

I should build the form inside a component instead the page. And I
should keep a reference
to the dynamic model inside this component. 

This makes sense for me but I find one problem. Where do I read the
renderer parameter?

Because this code gets executed in the main page.

---------------------------- CODE ----------------------------
 // Get render parameter 
                String value =
((PortletRequestContext)RequestContext.get()).getPortletRequest().getParameter("crmportal:userId");

--------------------------------------------------------------


I can do it in submit but then I should be able to communicate it to the
new component and
make it render again.

Is there a common way to do this in wicket?


Thank you



El mar, 03-11-2009 a las 08:00 -0200, Pedro Santos escribió:

> > But when I submit the form the constructer gets not called anymore.
> this is an expected behavior, an component instance is held on pagemap
> between requests.
> 
> > But as I have to build the form I do not have a dynamic model on page.
> Can't you manage an instance of an dynamic model on your component,
> independent of your form build logic? You can. Figure out the best way to
> your component. You can simple keep this model on an instance variable for
> example.
> 
> On Tue, Nov 3, 2009 at 7:22 AM, Gonzalo Aguilar Delgado <
> gagui...@aguilardelgado.com> wrote:
> 
> > Hello Again!
> >
> > I have a form that I build dynamically based on a render parameter
> > value. I'm using
> > http://cwiki.apache.org/WICKET/forms-with-dynamic-elements.html
> >
> >
> > I use the constructor:
> >
> > /**
> >         * Constructor
> >         */
> >        public ViewModePage()
> >        {
> >
> >        ...
> >
> >                // Get render parameter
> >                String value =
> >
> > ((PortletRequestContext)RequestContext.get()).getPortletRequest().getParameter("crmportal:userId");
> >        ...
> >                // Check for a valid answer from this customer
> >                if(value!=null && value.length()>0)
> >                {
> >                        log.debug("Value length: " + value.length());
> >                        User user =
> > userDAOBean.find(UuidUserType.fromString(value));
> >
> >                        if(user!=null)
> >                        {
> >                                answer = getLastAnswer(1,user);
> >                                if(answer!=null)
> >                                {
> >                                        buildForm(answer);
> >                                        surveySubmitButton.setEnabled(true);
> >                                }
> >                        }
> >                }
> >        ...
> >
> >        }
> >
> > ------------------------------------------------------------------------------------
> >
> > buildForm(answer); gets the form build based on the user answer
> >
> > The problem as you can figure out. It works as I do nothing with the
> > form... But when I submit the form the constructer gets not
> > called anymore. So no matter what's the value it will get not updated to
> > the new one.
> >
> > The GREAT book "wicket in action" explained this issue well. You have to
> > use dynamic models:
> >
> >
> > ---------------------------- CODE ----------------------------------
> >    In chapter 4, we’ll discuss the differences between static models
> > and dynamic mod-
> > els (the issue at hand) in greater depth. For now, we’ll solve the
> > problem by providing
> > the label with a model that calculates its value every time it’s
> > requested:
> >
> > add(new Label("total", new Model() {
> >     @Override
> >    public Object getObject() {
> >         NumberFormat nf = NumberFormat.getCurrencyInstance();
> >         return nf.format(getCart().getTotal());
> >     }
> > }));
> >
> > -------------------WICKET IN ACTION ----------------------------
> >
> >
> > But as I have to build the form I do not have a dynamic model on page.
> > So how do I make the form gets updated each time
> > the page it's rendered without disturbing Wicket normal behaviour?
> >
> > Do I explain myself?
> >
> > Thank you all in advance.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> 
> 

Reply via email to