Ah, good to hear! On Mon, Aug 8, 2011 at 5:52 AM, David Canteros <davidcanteros....@gmail.com> wrote: > Hi again Josh, i had not seen your first response, there was the solution to > my problem. > Thank you! > David > > > > ------------------------------------------------------------------ > David Germán Canteros > > > 2011/8/6 David Canteros <davidcanteros....@gmail.com> > >> Yes, user is an object loaded in the setupRender() method, and getImage() >> returns an InputStream every time the page is loaded. >> >> >> ------------------------------------------------------------------ >> David Germán Canteros >> >> >> 2011/8/5 Josh Canfield <joshcanfi...@gmail.com> >> >>> The real issue is more likely the first point, you're getting your >>> InputStream from an object from the session. Does calling getImage() >>> return a new InputStream every time? >>> >>> On Fri, Aug 5, 2011 at 2:44 PM, David Canteros >>> <davidcanteros....@gmail.com> wrote: >>> > Hi Josh; >>> > I have already tried with PageRenderLinkSource but It has the >>> > same behavior. I did not know the difference between LinkSource and >>> > PageRenderLinkSource, thanks for the information! >>> > >>> > David >>> > >>> > ------------------------------------------------------------------ >>> > David Germán Canteros >>> > >>> > >>> > 2011/8/5 Josh Canfield <joshcanfi...@gmail.com> >>> > >>> >> Also. >>> >> > private LinkSource linkSource; >>> >> >>> >> This is an internal class, you should be using PageRenderLinkSource. >>> >> You can replace: >>> >> >>> >> > >>> linkSource.createPageRenderLink(DisplayImagePage.class.getSimpleName(), >>> >> false, new Object[]{imageId}); >>> >> >>> >> with >>> >> >>> >> >>> >> >>> pageRenderLinkSource.createPageRenderLinkWithContext(DisplayImagePage.class, >>> >> imageId); >>> >> >>> >> Josh >>> >> >>> >> On Fri, Aug 5, 2011 at 1:39 PM, David Canteros >>> >> <davidcanteros....@gmail.com> wrote: >>> >> > Hi >>> >> > I have to show a image loaded from database BLOB field. I implemented >>> >> > Thiago's suggestion, I have created a page with the following code: >>> >> > >>> >> > public class ShowImagePage { >>> >> > >>> >> > @Inject >>> >> > private LinkSource linkSource; >>> >> > (...) >>> >> > >>> >> > public Link *getUploadedFile*(String imageId) { >>> >> > return >>> >> > >>> linkSource.createPageRenderLink(DisplayImagePage.class.getSimpleName(), >>> >> > false, new Object[]{imageId}); >>> >> > } >>> >> > >>> >> > public StreamResponse *onActivate*(String imageId) { >>> >> > this.filename = imageId; >>> >> > return new StreamResponse() { >>> >> > >>> >> > public String *getContentType*() { >>> >> > return contentType; >>> >> > } >>> >> > >>> >> > public InputStream *getStream*() throws IOException { >>> >> > User user = >>> >> > (User)_request.getSession(true).getAttribute("user"); >>> >> > return user.getImage(); >>> >> > } >>> >> > >>> >> > public void *prepareResponse*(Response response) { >>> >> > response.setHeader("Content-Disposition", "inline; >>> >> > filename=" + filename >>> >> > + ((extension == null) ? "" : ("." + >>> >> > extension))); >>> >> > } >>> >> > }; >>> >> > } >>> >> > } >>> >> > ** >>> >> > In the javacode of the page where i have to show the image, I >>> injected >>> >> the >>> >> > above page and wrote this method >>> >> > >>> >> > public Link *getImageLink*(ImageId){ >>> >> > return showImagewPage.getUploadedFile(imageId); >>> >> > } >>> >> > and in html code I put this: >>> >> > >>> >> > <img src="${imageLInk}"/> >>> >> > >>> >> > It works fine, the image is showed but when I refresh the page (with >>> F5), >>> >> > the image dissapear. It behavior does not occur if I submit some form >>> >> placed >>> >> > in the same page that refresh the page too (the method >>> "onSubmitFrom..." >>> >> > returns "this" ). I have debugged the code and everything works fine, >>> do >>> >> you >>> >> > have any idea about this behavior? >>> >> > >>> >> > Thanks!! >>> >> > >>> >> > ------------------------------------------------------------------ >>> >> > David Germán Canteros >>> >> > >>> >> > >>> >> > 2011/3/11 Rich M <rich...@moremagic.com> >>> >> > >>> >> >> Thanks everyone for the responses so far, conceptually I think this >>> is >>> >> >> coming together for me. >>> >> >> >>> >> >> So, I'm glad the context path was not a good idea, it felt dirty >>> from >>> >> the >>> >> >> beginning. Avoiding that, there are two main options: use the >>> database >>> >> to >>> >> >> store/retrieve the images, or use a configured system folder from >>> where >>> >> I >>> >> >> can load/save files with Java IO. >>> >> >> >>> >> >> Regardless of the option chosen there, the image file will be >>> captured >>> >> as >>> >> >> an InputStream and returned as a StreamResponse in some form to a >>> >> >> page/component. >>> >> >> >>> >> >> As far as linking the StreamResponse to an HTML IMG tag, I believe I >>> >> >> understand the various options presented here. >>> >> >> >>> >> >> LLTYK suggests using an EventLink. I was looking through my code and >>> >> found >>> >> >> a Captcha implementation I have using a propertyExpression in the >>> TML on >>> >> the >>> >> >> src attribute of <IMG> to reference a getImageLink function that >>> returns >>> >> >> ComponentResources.**createActionLink("image",null)**. Then there is >>> an >>> >> >> onImage() action handler method that returns a StreamResponse. I >>> >> understand >>> >> >> this is ActionLink and not EventLink, but I think the concept must >>> be >>> >> nearly >>> >> >> identical. >>> >> >> >>> >> >> Alternately, Thiago is suggesting that instead of using >>> >> ComponentResources >>> >> >> to generate an ActionLink or EventLink, it may be easier to create a >>> >> >> seperate Page that handles returning just a StreamResponse. In that >>> case >>> >> the >>> >> >> EventLink can be replaced with a PageLink and using an activation >>> >> context >>> >> >> the ID for the Image can be passed to the Page so it can load the >>> Image, >>> >> >> build the StreamResponse, and return it. >>> >> >> >>> >> >> <30 minutes later> Okay, the PageLink works out, great! I can see >>> the >>> >> >> biggest issue I was having was setting up the src attribute for IMG >>> >> >> correctly. I was stuck thinking it was either the URL to the context >>> >> path or >>> >> >> the StreamResponse itself, rather than a link to an event or page >>> that >>> >> >> returns the StreamResponse. >>> >> >> >>> >> >> Thanks, >>> >> >> Rich >>> >> >> >>> >> >> >>> >> >> >>> >> >> On 03/11/2011 08:08 AM, Thiago H. de Paula Figueiredo wrote: >>> >> >> >>> >> >>> On Fri, 11 Mar 2011 09:24:35 -0300, LLTYK <ll...@mailinator.com> >>> >> wrote: >>> >> >>> >>> >> >>> Nobody's mentioned createEventLink. That's where you get the image >>> >> url, >>> >> >>>> create an event link pointing to the event handler that returns >>> the >>> >> >>>> stream response. >>> >> >>>> >>> >> >>> >>> >> >>> I haven't mentioned it because my preferred approach is to create a >>> >> page >>> >> >>> just for returning StreamResponses. It's more reusable, as it can >>> be >>> >> used to >>> >> >>> serve images for any page, while an event must be only used inside >>> a >>> >> give >>> >> >>> page. >>> >> >>> >>> >> >>> >>> >> >> >>> >> >> >>> >> >>> ------------------------------**------------------------------**--------- >>> >> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.**apache.org< >>> >> users-unsubscr...@tapestry.apache.org> >>> >> >> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >> >> >>> >> >> >>> >> > >>> >> >>> >> --------------------------------------------------------------------- >>> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> >> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >> >>> >> >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> >
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org