Hi,

Label is designed to display a text, and that's what you supplied in the
second line.
But you provides a typed model in the first one. So the effect is that le
Label will call blobPost.toString().
If you wish to provide a model to the Label (which is recommended in case
the text changes), prefer: new Label("when", new
PropertyModel<String>(blogPost, "text))

Hope this helps,
Sebastien.


On Sat, Sep 22, 2012 at 4:25 PM, Stephen Walsh <
[email protected]> wrote:

> On a related note to this original question.
>
> Can someone explain the difference between the two lines below?
>
>         listItem.add(new Label("when", new Model<Post>(blogPost)));
>         listItem.add(new Label("text", blogPost.getText()));
>
> The first one gives me some random but predictable text: post.Post@497f079e
> The next gives me the actual text of the test post:text1
>
> I'm not sure why it matters here.  In my details page as you can below,
> the getters are being used to pull back the necessary data.
>
> Thanks in advance.
>
> On Sep 21, 2012, at 19:45, Stephen Walsh <[email protected]>
> wrote:
>
> > Got this resolved.  I missed a line in my Post class
> >
> > add(this);
> >
> > which adds the Post in question to the HashMap.
> >
> >
> > On Sep 21, 2012, at 08:38, Stephen Walsh <[email protected]>
> wrote:
> >
> >> I attempted your solution Sebastien and did parameters.set("id", 43);
>  This was one of the id's that was showing up in the link when I looked at
> the status bar.  I still got the same error (string value exception) and it
> also said something about a null pointer.  I'm at work and don't have the
> stack trace, but I thought it might be helpful to provide more info.
> >>
> >> Any other thoughts on this?  Thanks again.
> >>
> >>
> >> _____________
> >> Stephen Walsh
> >>
> >>
> >>
> >> On Thu, Sep 20, 2012 at 4:46 PM, Stephen Walsh <
> [email protected]> wrote:
> >> Are they not being set when the BlogDetails.link gives the blogPost
> >> object and it set page parameters there?
> >>
> >>
> >>
> >> ______________________________
> >> Stephen Walsh
> >>
> >> On Sep 20, 2012, at 14:23, Francois Meillet <[email protected]>
> wrote:
> >>
> >> > I don't see where you set the parameters...
> >> > parameters.set("id", x);
> >> >
> >> > It has to be done somewhere.
> >> > If parameters.get("id") return null, as null can't be converted to
> long, you get the exception.
> >> >
> >> > François
> >> >
> >> >
> >> > Le 20 sept. 2012 à 21:16, Stephen Walsh <
> [email protected]> a écrit :
> >> >
> >> >> Thanks for responding.  That would make sense.  Is there any way to
> >> >> identify when or when it couldn't be converted?
> >> >>
> >> >> Does the array that I provided cause this issue?  In my Post class I
> >> >> followed the example code and have the class assigning ids as long.
> >> >>
> >> >> _______________________________________
> >> >> Stephen Walsh | http://connectwithawalsh.com
> >> >>
> >> >>
> >> >>
> >> >> On Thu, Sep 20, 2012 at 12:55 PM, Francois Meillet <
> >> >> [email protected]> wrote:
> >> >>
> >> >>> parameters.get("id").toLong() throws this exception when id can't be
> >> >>> converted to long.
> >> >>>
> >> >>> François
> >> >>>
> >> >>>
> >> >>> Le 20 sept. 2012 à 19:06, Stephen Walsh <
> [email protected]> a
> >> >>> écrit :
> >> >>>
> >> >>>> I am new to Wicket and Java, so forgive any ignorance or lack of
> >> >>> information.
> >> >>>>
> >> >>>> I am modeling a blog type application after the Wicket Examples
> Library
> >> >>> application and have not had any luck passing the post id to the
> details
> >> >>> page.  I'm not using the user portion at this point because I'll be
> doing a
> >> >>> role based authorization later.
> >> >>>>
> >> >>>> The blog page populates the array that it is given and provides a
> link
> >> >>> to the detail page, but this is when the exception is thrown.  Any
> thoughts?
> >> >>>>
> >> >>>> Thanks!
> >> >>>>
> >> >>>> public abstract class BasePage extends WebPage {
> >> >>>>     /**
> >> >>>>      *
> >> >>>>      */
> >> >>>>     private static final long serialVersionUID = 1L;
> >> >>>>
> >> >>>>
> >> >>>>     private String pageTitle = "(no title)";
> >> >>>>
> >> >>>>     /**
> >> >>>>      *
> >> >>>>      * @return pageTitle
> >> >>>>      */
> >> >>>>     public final String getPageTitle() {
> >> >>>>
> >> >>>>             return pageTitle;
> >> >>>>     }
> >> >>>>
> >> >>>>     /**
> >> >>>>      *
> >> >>>>      * @param title
> >> >>>>      */
> >> >>>>     public final void setPageTitle(String title) {
> >> >>>>
> >> >>>>             pageTitle = title;
> >> >>>>     }
> >> >>>>
> >> >>>>     public BasePage() {
> >> >>>>
> >> >>>>             this(new PageParameters());
> >> >>>>     }
> >> >>>>
> >> >>>>     /**
> >> >>>>      *
> >> >>>>      * @param parameters
> >> >>>>      */
> >> >>>>     public BasePage(final PageParameters parameters) {
> >> >>>>
> >> >>>>             super(parameters);
> >> >>>>
> >> >>>>             add(new Label("title", new PropertyModel<String>(this,
> >> >>> "pageTitle")));
> >> >>>>             add(new BookmarkablePageLink("logo", Index.class));
> >> >>>>             add(new BookmarkablePageLink("home", Index.class));
> >> >>>>             add(new BookmarkablePageLink("news", Blog.class));
> >> >>>>             add(new BookmarkablePageLink("contact",
> ContactUs.class));
> >> >>>>             add(new BookmarkablePageLink("about", About.class));
> >> >>>>             add(new FooterPanel("social"));
> >> >>>>     }
> >> >>>>
> >> >>>>     /**
> >> >>>>      * Construct
> >> >>>>      *
> >> >>>>      * @param model
> >> >>>>      */
> >> >>>>     public BasePage(IModel<?> model) {
> >> >>>>
> >> >>>>             super(model);
> >> >>>>     }
> >> >>>>
> >> >>>> public class Blog extends BasePage {
> >> >>>>
> >> >>>>     /**
> >> >>>>      * Constructor
> >> >>>>      *
> >> >>>>      * @param params
> >> >>>>      */
> >> >>>>     public Blog(final PageParameters paramaters) {
> >> >>>>
> >> >>>>             setPageTitle("News");
> >> >>>>
> >> >>>>             //Add a list of blogPosts
> >> >>>>             final PageableListView<Post> listView;
> >> >>>>             add(listView = new PageableListView<Post>("blogPosts",
> new
> >> >>> PropertyModel<List<Post>>(this, "blogPosts"), 5) {
> >> >>>>
> >> >>>>                     @Override
> >> >>>>                     public void populateItem(final ListItem<Post>
> >> >>> listItem) {
> >> >>>>                             final Post blogPost =
> >> >>> listItem.getModelObject();
> >> >>>>
> listItem.add(BlogDetails.link("details",
> >> >>> blogPost, getLocalizer().getString("noPostTitle", this)));
> >> >>>>                             listItem.add(new Label("text", new
> >> >>> Model<Post>(blogPost)));
> >> >>>>                             listItem.add(new Label("tags", new
> >> >>> Model<Post>(blogPost)));
> >> >>>>                             listItem.add(removeLink("remove",
> >> >>> listItem));
> >> >>>>                             listItem.add(EditBlogPost.link("edit",
> >> >>> blogPost.getId()));
> >> >>>>                     }
> >> >>>>             });
> >> >>>>             add(new PagingNavigator("navigator", listView));
> >> >>>>     }
> >> >>>>
> >> >>>>     public List<Post> getBlogPosts() {
> >> >>>>             final List<Post> blogPosts = new ArrayList<Post>();
> >> >>>>
> >> >>>>             blogPosts.add(new Post("Post1", "text1", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post2", "text2", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post3", "text3", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post4", "text4", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post5", "text5", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post6", "text6", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post7", "text7", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post8", "text8", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post9", "text9", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>             blogPosts.add(new Post("Post10", "text10", "tag1, tag2,
> >> >>> tag3"));
> >> >>>>
> >> >>>>             return blogPosts;
> >> >>>>
> >> >>>>     }
> >> >>>> }
> >> >>>>
> >> >>>> public class BlogDetails extends BasePage {
> >> >>>>
> >> >>>>     /**
> >> >>>>      *
> >> >>>>      * @param parameters
> >> >>>>      *                      PageParameters
> >> >>>>      * @throws StringValueConversionException
> >> >>>>      */
> >> >>>>     public BlogDetails(final PageParameters parameters) throws
> >> >>> StringValueConversionException {
> >> >>>>             this(Post.get(parameters.get("id").toLong()));
> >> >>>>     }
> >> >>>>
> >> >>>>     public BlogDetails(final Post blogPost) {
> >> >>>>             add(new Label("title", blogPost.getTitle()));
> >> >>>>             add(new Label("text", blogPost.getText()));
> >> >>>>             add(new Label("tags", blogPost.getTags()));
> >> >>>>             add(EditBlogPost.link("edit", blogPost.getId()));
> >> >>>>     }
> >> >>>>
> >> >>>>     /**
> >> >>>>      * Creates an external page link
> >> >>>>      *
> >> >>>>      * @param name
> >> >>>>      *            The name of the link component to create
> >> >>>>      * @param post
> >> >>>>      *            The post to link to
> >> >>>>      * @param noPostTitle
> >> >>>>      *            The title to show if post is null
> >> >>>>      * @return The external page link
> >> >>>>      */
> >> >>>>     public static BookmarkablePageLink<Void> link(final String
> name,
> >> >>> final Post blogPost, final String noPostTitle) {
> >> >>>>
> >> >>>>             final BookmarkablePageLink<Void> link = new
> >> >>> BookmarkablePageLink<Void>(name, BlogDetails.class);
> >> >>>>
> >> >>>>             if (blogPost != null) {
> >> >>>>
> >> >>>>                     link.getPageParameters().add("id",
> >> >>> blogPost.getId());
> >> >>>>                     link.add(new Label("title", new
> >> >>> Model<Post>(blogPost)));
> >> >>>>             }
> >> >>>>             else {
> >> >>>>
> >> >>>>                     link.add(new Label("title", noPostTitle));
> >> >>>>                     link.setEnabled(false);
> >> >>>>             }
> >> >>>>
> >> >>>>             return link;
> >> >>>>     }
> >> >>>> }
> >> >>>>
> >> >>>>
> >> >>>> ____________________________________
> >> >>>> Stephen Walsh | http://connectwithawalsh.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