Thanks, in fact I get a even nicer way generate image, which is just use Image() object from wicket, thanks everyone
On 11/22/06, Eelco Hillenius <[EMAIL PROTECTED]> wrote: > You can always do RequestCycle.get() (or > ((WebRequest)RequestCycle.get())) to get the current request cycle, on > which you can then call get(Web)Request and get(Web)Response > > Eelco > > On 11/21/06, Carfield Yim <[EMAIL PROTECTED]> wrote: > > Thanks for introducting the class to me, however look like this > > missing some object like session and request which I need > > > > In fact I am going to output captcha according to jCaptcha example, it > > need request and session as follow. But can I do the same at > > WebResource? > > > > public ImageCaptcha() throws ImageFormatException, IOException { > > super(); > > final WebRequest httpServletRequest = (WebRequest)getRequest(); > > final WebResponse httpServletResponse = (WebResponse)getResponse(); > > byte[] captchaChallengeAsJpeg = null; > > // the output stream to render the captcha image as jpeg into > > ByteArrayOutputStream jpegOutputStream = new > > ByteArrayOutputStream(); > > // get the session id that will identify the generated captcha. > > // the same id must be used to validate the response, the > > session id is a good candidate! > > String captchaId = getSession().getId(); > > // call the ImageCaptchaService getChallenge method > > BufferedImage challenge = new > > DefaultManageableImageCaptchaService().getImageChallengeForID(captchaId, > > > > httpServletRequest.getLocale()); > > // a jpeg encoder > > JPEGImageEncoder jpegEncoder = > > JPEGCodec.createJPEGEncoder(jpegOutputStream); > > jpegEncoder.encode(challenge); > > captchaChallengeAsJpeg = jpegOutputStream.toByteArray(); > > > > // flush it in the response > > httpServletResponse.setHeader("Cache-Control", "no-store"); > > httpServletResponse.setHeader("Pragma", "no-cache"); > > httpServletResponse.setDateHeader("Expires", 0); > > httpServletResponse.setContentType("image/jpeg"); > > OutputStream responseOutputStream = > > httpServletResponse.getOutputStream(); > > responseOutputStream.write(captchaChallengeAsJpeg); > > responseOutputStream.flush(); > > responseOutputStream.close(); > > } > > On 11/22/06, Eelco Hillenius <[EMAIL PROTECTED]> wrote: > > > For binary output, use a (web)resource. For instance, something like this: > > > > > > WebResource export = new WebResource() { > > > > > > @Override > > > public IResourceStream getResourceStream() { > > > CharSequence discounts = DataBase.getInstance() > > > .exportDiscounts(); > > > return new StringResourceStream(discounts, "text/plain"); > > > } > > > > > > @Override > > > protected void setHeaders(WebResponse response) { > > > super.setHeaders(response); > > > response.setAttachmentHeader("discounts.csv"); > > > } > > > }; > > > export.setCacheable(false); > > > > > > new ResourceLink(this, "exportLink", export); > > > > > > > > > Eelco > > > > > > ------------------------------------------------------------------------- > > > Take Surveys. Earn Cash. Influence the Future of IT > > > Join SourceForge.net's Techsay panel and you'll get the chance to share > > > your > > > opinions on IT & business topics through brief surveys - and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > _______________________________________________ > > > Wicket-user mailing list > > > Wicket-user@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share your > > opinions on IT & business topics through brief surveys - and earn cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user