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]