You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Ed _ <ed...@hotmail.com> on 2007/07/29 17:04:46 UTC

editable form

I am trying to create an editable form - this has a drop down list. in it

List ratingList = cfg.getContentRatingList();
DropDownChoice ratingChoice = new DropDownChoice("rating", new
PropertyModel(form, "category"), ratingList, new
ChoiceRenderer("label", "id"));

ratingChoice.setRequired(true);
add(ratingChoice);

ratingList is a list of object types of the following class.
public class ConfigContent implements Serializable{
    private String label;
    private String id;
    public ConfigContent(String id, String label){
        this.label = label;
        this.id = id;
    }
    public String getLabel(){
        return this.label;
    }
    public String getId(){
        return this.id;
    }
    public void setLabel( String label){
        this.label = label;
    }
    public void setId( String Id){
        this.id = Id;
    }
}


private class FormData implements Serializable{
        private String m_name;
        private String m_siteUrl;
        private String m_rating;
        public String getName() {
            return this.m_title;
        }
        public String getSiteUrl() {
            return this.m_SiteUrl;
        }
        public String getRating() {
            return this.m_rating;
        }
        .... setter methods. 

    }
}

The html seems to be getting rendered properly - 
				<select wicket:id="rating" name="rating"><option selected="selected" value="">Choose One</option><option value="0">PG</option><option value="1">PG-13</option>
<option value="2">PG-17</option><option value="3">Restricted</option></select>
But when i submit the form and print out the values beign returned to me - 
        public void onSubmit(){
            Log log = LogFactory.getLog(PublishForm.class);
            FormData mod = (PublishFormModel)getModelObject();
            String title = mod.getTitle();
            String feedUrl = mod.getSiteUrl();
            String rating = mod.getRating();

            
the values for the dropdown are not right - I end up getting - category:com.test.ConfigContent@1f3834
And then an error is returned to the web page - 

ERROR [http-8080-1] (WebRequestCycle.java:200) - No get method defined for class: class java.lang.String expression: id
wicket.WicketRuntimeException: No get method defined for class: class java.lang.String expression: id
    at wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:324)
    at wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:200)
    at wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:88)
    at wicket.markup.html.form.ChoiceRenderer.getIdValue(ChoiceRenderer.java:148)


would appreciate pointers

thx,

ed

Missed the show?  Watch videos of the Live Earth Concert on MSN. See them now!

_________________________________________________________________
PC Magazine’s 2007 editors’ choice for best web mail—award-winning Windows Live Hotmail.
http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migration_HMWL_mini_pcmag_0707

Re: editable form saw a similar issue fixed with forms and pallettes in 1.3

Posted by Gabor Szokoli <sz...@gmail.com>.
On 7/30/07, Ed_ <ed...@hotmail.com> wrote:
>
> http://mail-archives.apache.org/mod_mbox/wicket-commits/200707.mbox/%3c3968904.1184003764866.JavaMail.jira@brutus%3e
> Is there any correlation?

I don't think so, but I'm not much more experienced with wicket than
you are :-)

> > Thanks the toString override  seems to work in that the correct values/ids
> > that I want do get posted back.
> > Like you mentioned is this the right way to do it?

No, I think it's a quick hack to get it working in the
component->model direction :-)
I think the design of DropDownChoice implies you use a list of the
same class for choices as the actual model. Then you use a
ChoiceRenderer to pretty print them on the user-visible choice list.
But I could be wrong because I don't remember seeing this in any
documentation or tutorial :-)

Or is there a way to express "this" in the property expression
language? "." maybe?
Because the rating string in your model object is the choice id itself.


Gabor

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: editable form saw a similar issue fixed with forms and pallettes in 1.3

Posted by Ed_ <ed...@hotmail.com>.
http://mail-archives.apache.org/mod_mbox/wicket-commits/200707.mbox/%3c3968904.1184003764866.JavaMail.jira@brutus%3e
Is there any correlation?

I am currenlty using 1.2 


Ed_ wrote:
> 
> Thanks the toString override  seems to work in that the correct values/ids
> that I want do get posted back.
> Like you mentioned is this the right way to do it?
> 
> Even with this solution in response to the submit I still continue to get
> an error back - which isn't making much sense to me.
> 
> http://localhost:8080/wicket/test/?wicket:interface=:5:DisplayPanel:PublishForm::IFormSubmitListener
> 
> WicketMessage: No get method defined for class: class java.lang.String
> expression: id
> Root cause:
> wicket.WicketRuntimeException: No get method defined for class: class
> java.lang.String expression: id
> at
> wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:324)
> at
> wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:200)
> at wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:88)
> at
> wicket.markup.html.form.ChoiceRenderer.getIdValue(ChoiceRenderer.java:148)
> at
> wicket.markup.html.form.AbstractSingleSelectChoice.getModelValue(AbstractSingleSelectChoice.java:140)
> at wicket.markup.html.form.FormComponent.getValue(FormComponent.java:583)
> at
> wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:319)
> 
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
> at java.lang.Thread.run(Thread.java:613)
> ............
> .............
> [Page class = com.test.web.myaccount.MyAccount, id = 5]:
> # 	Path 	Size 	Type 	Model Object
> 1    	<auto>_header    	481 bytes    
> wicket.markup.html.internal.HtmlHeaderContainer    	   
> 2    	DisplayPanel    	6.5K    
> com.test.web.myaccount.AccountPublishDisplayPanel    	   
> 3    	DisplayPanel:PublishForm    	9.5K    	wicket.markup.html.form.Form
> 
> 
> 
> 
> 
> Ed_ wrote:
>> 
>> 
>> I am trying to create an editable form - this has a drop down list. in it
>> 
>> List ratingList = cfg.getContentRatingList();
>> DropDownChoice ratingChoice = new DropDownChoice("rating", new
>> PropertyModel(form, "category"), ratingList, new
>> ChoiceRenderer("label", "id"));
>> 
>> ratingChoice.setRequired(true);
>> add(ratingChoice);
>> 
>> ratingList is a list of object types of the following class.
>> public class ConfigContent implements Serializable{
>>     private String label;
>>     private String id;
>>     public ConfigContent(String id, String label){
>>         this.label = label;
>>         this.id = id;
>>     }
>>     public String getLabel(){
>>         return this.label;
>>     }
>>     public String getId(){
>>         return this.id;
>>     }
>>     public void setLabel( String label){
>>         this.label = label;
>>     }
>>     public void setId( String Id){
>>         this.id = Id;
>>     }
>> }
>> 
>> 
>> private class FormData implements Serializable{
>>         private String m_name;
>>         private String m_siteUrl;
>>         private String m_rating;
>>         public String getName() {
>>             return this.m_title;
>>         }
>>         public String getSiteUrl() {
>>             return this.m_SiteUrl;
>>         }
>>         public String getRating() {
>>             return this.m_rating;
>>         }
>>         .... setter methods. 
>> 
>>     }
>> }
>> 
>> The html seems to be getting rendered properly - 
>> 				<select wicket:id="rating" name="rating"><option selected="selected"
>> value="">Choose One</option><option value="0">PG</option><option
>> value="1">PG-13</option>
>> <option value="2">PG-17</option><option
>> value="3">Restricted</option></select>
>> But when i submit the form and print out the values beign returned to me
>> - 
>>         public void onSubmit(){
>>             Log log = LogFactory.getLog(PublishForm.class);
>>             FormData mod = (PublishFormModel)getModelObject();
>>             String title = mod.getTitle();
>>             String feedUrl = mod.getSiteUrl();
>>             String rating = mod.getRating();
>> 
>>             
>> the values for the dropdown are not right - I end up getting -
>> category:com.test.ConfigContent@1f3834
>> And then an error is returned to the web page - 
>> 
>> ERROR [http-8080-1] (WebRequestCycle.java:200) - No get method defined
>> for class: class java.lang.String expression: id
>> wicket.WicketRuntimeException: No get method defined for class: class
>> java.lang.String expression: id
>>     at
>> wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:324)
>>     at
>> wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:200)
>>     at
>> wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:88)
>>     at
>> wicket.markup.html.form.ChoiceRenderer.getIdValue(ChoiceRenderer.java:148)
>> 
>> 
>> would appreciate pointers
>> 
>> thx,
>> 
>> ed
>> 
>> Missed the show?  Watch videos of the Live Earth Concert on MSN. See them
>> now!
>> 
>> _________________________________________________________________
>> PC Magazine’s 2007 editors’ choice for best web mail—award-winning
>> Windows Live Hotmail.
>> http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migration_HMWL_mini_pcmag_0707
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/editable-form-tf4165841.html#a11866785
Sent from the Wicket Users New mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: editable form

Posted by Ed_ <ed...@hotmail.com>.
Thanks the toString override  seems to work in that the correct values/ids
that I want do get posted back.
Like you mentioned is this the right way to do it?

Even with this solution in response to the submit I still continue to get an
error back - which isn't making much sense to me.

http://localhost:8080/wicket/test/?wicket:interface=:5:DisplayPanel:PublishForm::IFormSubmitListener

WicketMessage: No get method defined for class: class java.lang.String
expression: id
Root cause:
wicket.WicketRuntimeException: No get method defined for class: class
java.lang.String expression: id
at
wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:324)
at
wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:200)
at wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:88)
at
wicket.markup.html.form.ChoiceRenderer.getIdValue(ChoiceRenderer.java:148)
at
wicket.markup.html.form.AbstractSingleSelectChoice.getModelValue(AbstractSingleSelectChoice.java:140)
at wicket.markup.html.form.FormComponent.getValue(FormComponent.java:583)
at
wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:319)

at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:613)
............
.............
[Page class = com.test.web.myaccount.MyAccount, id = 5]:
# 	Path 	Size 	Type 	Model Object
1    	<auto>_header    	481 bytes    
wicket.markup.html.internal.HtmlHeaderContainer    	   
2    	DisplayPanel    	6.5K    
com.test.web.myaccount.AccountPublishDisplayPanel    	   
3    	DisplayPanel:PublishForm    	9.5K    	wicket.markup.html.form.Form





Ed_ wrote:
> 
> 
> I am trying to create an editable form - this has a drop down list. in it
> 
> List ratingList = cfg.getContentRatingList();
> DropDownChoice ratingChoice = new DropDownChoice("rating", new
> PropertyModel(form, "category"), ratingList, new
> ChoiceRenderer("label", "id"));
> 
> ratingChoice.setRequired(true);
> add(ratingChoice);
> 
> ratingList is a list of object types of the following class.
> public class ConfigContent implements Serializable{
>     private String label;
>     private String id;
>     public ConfigContent(String id, String label){
>         this.label = label;
>         this.id = id;
>     }
>     public String getLabel(){
>         return this.label;
>     }
>     public String getId(){
>         return this.id;
>     }
>     public void setLabel( String label){
>         this.label = label;
>     }
>     public void setId( String Id){
>         this.id = Id;
>     }
> }
> 
> 
> private class FormData implements Serializable{
>         private String m_name;
>         private String m_siteUrl;
>         private String m_rating;
>         public String getName() {
>             return this.m_title;
>         }
>         public String getSiteUrl() {
>             return this.m_SiteUrl;
>         }
>         public String getRating() {
>             return this.m_rating;
>         }
>         .... setter methods. 
> 
>     }
> }
> 
> The html seems to be getting rendered properly - 
> 				<select wicket:id="rating" name="rating"><option selected="selected"
> value="">Choose One</option><option value="0">PG</option><option
> value="1">PG-13</option>
> <option value="2">PG-17</option><option
> value="3">Restricted</option></select>
> But when i submit the form and print out the values beign returned to me - 
>         public void onSubmit(){
>             Log log = LogFactory.getLog(PublishForm.class);
>             FormData mod = (PublishFormModel)getModelObject();
>             String title = mod.getTitle();
>             String feedUrl = mod.getSiteUrl();
>             String rating = mod.getRating();
> 
>             
> the values for the dropdown are not right - I end up getting -
> category:com.test.ConfigContent@1f3834
> And then an error is returned to the web page - 
> 
> ERROR [http-8080-1] (WebRequestCycle.java:200) - No get method defined for
> class: class java.lang.String expression: id
> wicket.WicketRuntimeException: No get method defined for class: class
> java.lang.String expression: id
>     at
> wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:324)
>     at
> wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:200)
>     at
> wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:88)
>     at
> wicket.markup.html.form.ChoiceRenderer.getIdValue(ChoiceRenderer.java:148)
> 
> 
> would appreciate pointers
> 
> thx,
> 
> ed
> 
> Missed the show?  Watch videos of the Live Earth Concert on MSN. See them
> now!
> 
> _________________________________________________________________
> PC Magazine’s 2007 editors’ choice for best web mail—award-winning Windows
> Live Hotmail.
> http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migration_HMWL_mini_pcmag_0707
> 

-- 
View this message in context: http://www.nabble.com/editable-form-tf4165841.html#a11866276
Sent from the Wicket Users New mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org