Not sure... but could you try something like: DownloadLink downloadLink = new DownloadLink("link_id", new AbstractReadOnlyModel<File>(){ public File getObject() { return this.linkModel; }; },"myfile.xxx"); downloadLink.setOutputMarkupId(true);
and make linkModel a member variable? This way file will be "refreshed". Best, Ernnesto On Tue, Mar 2, 2010 at 1:14 PM, Martin Asenov <mase...@velti.com> wrote: > Hi, guys! > > I experience some DownloadLink problem - I have these fields: > > File linkModel; > DownloadLink theLink = new DownloadLink("link_id", new > Model<File>(linkModel)); > theLink.setOutputMarkupId(true); > > After another button click I have the linkModel field pointing to real file > on the file system. And then I say: > > target.addComponent(theLink); > > the link name is still invisible, and when I click on the small clickable > area, Wicket comes up with: > > WicketMessage: Method onLinkClicked of interface > org.apache.wicket.markup.html.link.ILinkListener targeted at component > [MarkupContainer [Component id = exported_file_link]] threw an exception > > Root cause: > > java.lang.IllegalStateException: > org.apache.wicket.markup.html.link.DownloadLink failed to retrieve a File > object from model > at > org.apache.wicket.markup.html.link.DownloadLink.onClick(DownloadLink.java:141) > at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:224) > at java.lang.reflect.Method.invoke(Method.java:597) > I thought I've made everything perfect, but it seems that I haven't. > Any help is appreciated! > > Best regards, > Martin > >