Hi, I've implemented this by mounting a bookmarkable page and writing into the response. I've imagine this bypasses some useful wicket features, but was the only way I use bookmarkable urls like "/image/someImageName" for mapping user uploaded images:
#Application this.mount(new IndexedParamUrlCodingStrategy("/image", ImagePage.class)); #ImagePage class public class ImagePage extends WebPage { private static Logger logger = LoggerFactory.getLogger(ImagePage.class); @Override protected void onRender(MarkupStream markupStream) { String imageName = (String) this.getRequest().getParameterMap().get("0"); byte[] fileContents = PersistenceFacade.readFile(imageName); try { this.getResponse().getOutputStream().write(fileContents); } catch (IOException e) { logger.error("Could not write image [" + imageName + "] into the response", e); } } } } Any suggestions are welcome, regards! Juan On Mon, Nov 2, 2009 at 3:00 PM, Alex Objelean <alex_objel...@yahoo.com>wrote: > > Exactly. You can see the example posted by Vytautas Racelis earlier at this > link: > > http://xaloon.googlecode.com/svn/trunk/xaloon-wicket-repository/src/main/java/org/xaloon/wicket/component/resource/ImageLink.java > > I prefer to do it this way: > http://pastebin.com/m328e21ff > > The first example allow you to use directly an Image component, while the > second allows you to build the url of any resource by name.. > > Alex Objelean > > > Peter Dotchev wrote: > > > > Hi Alex, > > > > I check SharedResources, but as I understand it I would have to add there > > a Resource object for each image. > > > > After checking again the javadoc there might be another way. > > Display each image with Image constructor that takes ValueMap and provide > > there some image identification. > > Add a single Resource object for all images and from getResourceStream() > > implementation to call getParameters() which will return the same > > parameters passed to Image constructor and tell me which image to return. > > Will this work? > > > > Best regards, > > Petar > > > > > > Alexandru Objelean wrote: > >> > >> Besides the servlet, there is also a wicket way of do it: > >> > >> - Use shared resource, which is stateless and bookmarkable > >> > >> If you need more informations about this approach, search on forum or > >> just ask... and I'll provide you with some examples of how I do it.. > >> > >> Alex Objelean > >> > >> > >> Peter Dotchev wrote: > >>> > >>> Hi, > >>> > >>> My app allows users to upload images and I store them in JCR > >>> <http://en.wikipedia.org/wiki/Content_repository_API_for_Java>. I can > >>> get InputStream for each one of them. > >>> I want to display images in specific pages and I want image URLs to be > >>> stable/bookmarkable. Also I don't want these pages to use the session > in > >>> any way. > >>> I checked again chapter 9 about images from Wicket In Action but such > >>> use case is not addressed there. > >>> > >>> I found that SharedResources allows for stable URLs, but I cannot > >>> register each individual image. > >>> > >>> What approach would you suggest? > >>> > >>> Best regards, > >>> Peter > >>> > >>> > >>> > >>> > >> > >> > > > > > > -- > View this message in context: > http://old.nabble.com/Bookmarkable-images-from-db-tp26154577p26157757.html > Sent from the Wicket - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >