Yes, so if you respond to an ajax request with a page response, T5 will send you a json snippet {"redirectURL" : "your.redirect.url"} and handles redirecting to it from the client. In this case you are responding with a StreamResponse so T5 gets confused. If you wanted to do an ajax update, it's totally possible. You just need to move your StreamResponse to a new page and return (a link to) this page from your event handler. The possible advantage is that you can have testable download urls for your files, like /downloadfile/somefile.tmp.
The DownloadFile page would simply contain something like this: public class DownloadFile { StreamResponse onActivate(String fileId) throws IOException { return new StreamResponse() {...} } } Your event handler should return a page object or an URL, check http://tapestry.apache.org/page-navigation.html for more info. Kalle On Fri, Feb 12, 2016 at 1:46 PM, h3ph3st0s <h3ph3s...@gmail.com> wrote: > Found the solution. I did have the zone part. So it was really ajax call. > ( But this is as defined from the tutorial ). > I removed that and now this works smoothly. > > As a case is closed from me. But what if I put back the zone in order to > update in ajax way the form ? > > Best regards, happy to test a very simple framework such as this > > On 2016-02-12 16:50, h3ph3st0s wrote: > >> Hi, >> The thing is that I see the tree of directories and files. That's awesome. >> But to download file really, I need to right click and choose the "save >> target as....". Then file dialog pops up and I can download really the >> file to my client disk. >> If I don't, the response is getting some how lost in the communication >> since I have error like this: >> *Communication with the server failed: TypeError: Unable to get property >> 'redirectURL' of undefined or null * >> >> It seems for me that, the StreamResponse expects something as output, >> which in the Jumpstart tutorial is there but I can not see it myself. >> On the other hand I need to trigger somehow this file dialog in order to >> allow user choose the folder to leave the file. >> >> Dimitris >> >> On 2016-02-12 16:32, Nathan Quirynen wrote: >> >>> You mean the file gets downloaded immediately to some download folder? >>> I think this is a setting of the used browser where a default location >>> has been set opposed to the setting where the browser will always ask for >>> the location. >>> So I'm afraid you don't really have control over this if I am correct. >>> >>> Nathan >>> >>> On 12/02/16 15:15, h3ph3st0s wrote: >>> >>>> Hi, >>>> >>>> I am new to Tapestry version 5. where I built a treemodel, which >>>> presents the files inside the catalog, >>>> >>>> /<t:tree t:id="tree" t:model="stuffModel" t:node="treeNode" >>>> t:value="classificationNode"> >>>> <p:label> >>>> <t:if test="treeNode.leaf"> >>>> <a t:type="EventLink" >>>> t:event="leafSelected" t:context="classificationNode.name" >>>> t:zone="selectedZone" class="prop:leafClass" >>>> href="#"> >>>> ${treeNode.label} >>>> </a> >>>> </t:if> >>>> <t:if test="!treeNode.leaf"> >>>> ${treeNode.label} >>>> </t:if> >>>> </p:label> >>>> </t:tree>/ >>>> >>>> and by clicking one of the files I build a StreamResponse ( I used the >>>> snippet from the jumpstart code ( page: >>>> http://jumpstart.doublenegative.com.au/jumpstart/examples/navigation/returntypes1 >>>> ) >>>> >>>> The function is : >>>> >>>> /public Object onLeafSelected(final String classificationId) { >>>> System.out.println(classificationId); >>>> System.out.println(regFile.get(classificationId)); >>>> final File file = new File( regFile.get(classificationId) ); >>>> return new StreamResponse() { >>>> InputStream inputStream; >>>> >>>> @Override >>>> public void prepareResponse(Response response) { >>>> ClassLoader classLoader = >>>> Thread.currentThread().getContextClassLoader(); >>>> try { >>>> inputStream = new FileInputStream(file); >>>> try { >>>> response.setHeader("Content-Length", "" + >>>> inputStream.available()); >>>> } >>>> catch (IOException e) { >>>> // Ignore the exception in this simple example. >>>> } >>>> } catch (FileNotFoundException e1) { >>>> // TODO Auto-generated catch block >>>> e1.printStackTrace(); >>>> }//classLoader.getResourceAsStream(regFile.get(classificationId)); >>>> >>>> // Set content length to prevent chunking - see >>>> // >>>> http://tapestry-users.832.n2.nabble.com/Disable-Transfer-Encoding-chunked-from-StreamResponse-td5269662.html#a5269662 >>>> >>>> } >>>> >>>> @Override >>>> public String getContentType() { >>>> return "text/plain"; >>>> } >>>> >>>> @Override >>>> public InputStream getStream() throws IOException { >>>> return inputStream; >>>> } >>>> }; >>>> }/ >>>> >>>> My problem and my question is how do I present a save-file-dialog that >>>> will help the user to point the download folder. In order to really >>>> download the file I must make right-click and then choose "save file as..." >>>> ? >>>> >>>> Thanks in advance >>>> >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> 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 > >