instead of

getComponent().getModelObject()).getUserName();

try String username=getComponent().getModelObject();

the textfield is associated with the username property of your form bean
because you are using compound model.

-igor


On 5/2/07, wicket0123 <[EMAIL PROTECTED]> wrote:


I have a form which extends wicket form:

MyForm extends Form

In the constructor, I have this line:

super(formId, new CompoundPropertyModel(new SignUpFormModel()));


SignUpFormModel is a Java class that contains my form fields.  After the
super call, i add the components:

                fc = new RequiredTextField("userName");
                fc.add(StringValidator.minimumLength(4));
                fc.setLabel(new Model("User name"));
                fc.add(new AjaxFormComponentUpdatingBehavior("onChange") {
                        protected void onUpdate(AjaxRequestTarget target)
{
                        }
                });
                add(fc);

                fc = new Button("checkId");
                fc.add(new AjaxFormComponentUpdatingBehavior("onClick") {
                        protected void onUpdate(AjaxRequestTarget target)
{

// this works
String userName =((SignUpFormModel)
getComponent().getParent().getModelObject()).getUserName();

// this doesn't work
//String userName =((SignUpFormModel)
getComponent().getModelObject()).getUserName();
                                if(userInfoService.checkIsUniUsername
(userName))
                                        getComponent().info("User Id is
available.");
                                else
                                        getComponent().error("User Id is
unavailable.");

                                target.addComponent(((SignUpWindow)
getComponent().getPage()).getFeedback());

                        }
                });

                add(fc);


All that code is inside my form class.  I think I see what you mean, when
i
create my form component, i don't pass in a model to it.  I pass in my
model
to the form instead.

Could you suggest a best approach on how to do this?  If I want to pass in
a
model for the component, do I just pass in my form model when i do a new
form component?



igor.vaynberg wrote:
>
> you most likely did not give the formcomponent a model.
>
> paste the relevant code
>
> -igor
>
>
> On 4/28/07, wicket0123 <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>> when i use getformcomponent.getmodleobject inside the onupdate, it
throws
>> nullpointer exeption.  see code below,
>>
>> ((SignUpFormModel) getFormComponent().getModelObject()).getUserName()
>>
>> If I use this, i have no problem:
>>
>> ((SignUpFormModel)
>> getComponent().getParent().getModelObject()).getUserName();
>>
>> Not sure if this is a bug on wicket or my code...
>>
>>
>>
>> igor.vaynberg wrote:
>> >
>> > if you use wicket validators and the component is invalid the
onerror()
>> > will
>> > be called instead of onupdate()
>> >
>> > the value is available via getformcomponent().getmodelobject() inside
>> > onupdate()
>> >
>> > -igor
>> >
>> >
>> > On 4/27/07, wicket0123 <[EMAIL PROTECTED]> wrote:
>> >>
>> >>
>> >> I want to use ajax to check if a field value is valid w/o submitting
>> the
>> >> entire form.  I add AjaxFormComponentUpdatingBehavior to my ajax
>> object
>> >> (link/button/etc).  But, I don't know how to retrieve the edit
field's
>> >> value
>> >> inside the onUpdate method.  See the code I have:
>> >>
>> >>                 fc = new RequiredTextField("userName");
>> >>                 fc.setLabel(new Model("User Name"));
>> >>                 add(fc);
>> >>
>> >>                 fc = new Button("checkId");
>> >>                 fc.add(new
>> AjaxFormComponentUpdatingBehavior("onClick")
>> {
>> >>                         protected void onUpdate(AjaxRequestTarget
>> target)
>> >> {
>> >>
>> >>                                 System.out.println("This gets
>> called");
>> >>
>> >>                                 // TODO: how to get the userName
>> field's
>> >> value?
>> >>
>> >>
>> >>                         }
>> >>                 });
>> >>
>> >>                 add(fc);
>> >> --
>> >> View this message in context:
>> >>
>>
http://www.nabble.com/how-to-get-a-form%27s-field-when-i-click-on-an-ajax-object-tf3660473.html#a10228341
>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >>
>>
-------------------------------------------------------------------------
>> >> This SF.net email is sponsored by DB2 Express
>> >> Download DB2 Express C - the FREE version of DB2 express and take
>> >> control of your XML. No limits. Just data. Click to get it now.
>> >> http://sourceforge.net/powerbar/db2/
>> >> _______________________________________________
>> >> Wicket-user mailing list
>> >> Wicket-user@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/wicket-user
>> >>
>> >
>> >
>>
-------------------------------------------------------------------------
>> > This SF.net email is sponsored by DB2 Express
>> > Download DB2 Express C - the FREE version of DB2 express and take
>> > control of your XML. No limits. Just data. Click to get it now.
>> > http://sourceforge.net/powerbar/db2/
>> > _______________________________________________
>> > Wicket-user mailing list
>> > Wicket-user@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/wicket-user
>> >
>> >
>>
>> --
>> View this message in context:
>>
http://www.nabble.com/how-to-get-a-form%27s-field-when-i-click-on-an-ajax-object-tf3660473.html#a10237360
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>>
-------------------------------------------------------------------------
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> http://sourceforge.net/powerbar/db2/
>> _______________________________________________
>> Wicket-user mailing list
>> Wicket-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>
>
>
-------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>

--
View this message in context:
http://www.nabble.com/how-to-get-a-form%27s-field-when-i-click-on-an-ajax-object-tf3660473.html#a10295090
Sent from the Wicket - User mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to