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
>
>

Reply via email to