Thanks, Sebastien. I'll give that a try.
On Sep 22, 2012, at 10:08, Sebastien <[email protected]> wrote: > 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] >>>>> >>>> >>> >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
