you can use the ResourceStreamRequestTarget for that now and use
setFileName() for setting the filename.

johan


On 1/4/07, Frank Silbermann <[EMAIL PROTECTED]> wrote:

 I am trying to make a button responde by downloading text to the user
which is saved as a .txt file.  Igor suggested I look at DownloadLink,
which downloads a file when clicked.

The code of DownloadLink does not seem to set the content type; does the
system make an assumption based on the file's suffix?

Trying to adapt the code in DownloadLink, I came up with the following
event for my Button subclass:

  public void onClick() {
    getRequestCycle().setRequestTarget(

      new IRequestTarget() {

        public void detach(RequestCycle requestCycle) {}
        public Object getLock(RequestCycle requestCycle) { return null; }

        public void respond(RequestCycle requestCycle) {
          WebResponse r = (WebResponse)requestCycle.getResponse();
          r.setAttachmentHeader("myFilename.txt");
          r.setContentType( "text/plain; name=myFileName.txt" );

          PrintStream printStream = new PrintStream(r.getOutputStream());
          printStream.println("Line 1");
          printStream.println("Line 2");        }

      }
    );
  }

I expect that when I run it and click the button, the browser should
pop-up a box asking me if I wish to save file "myFileName.txt"
-- a file that should contain two lines of text.  But when I run it and
click my button, it goes back to the server, but then nothing happens --the
browser does not prompt me to save anything.

Do you see anything wrong with what I've done?
 ------------------------------
*From:* [EMAIL PROTECTED] [mailto:
[EMAIL PROTECTED] *On Behalf Of *Igor Vaynberg
*Sent:* Wednesday, January 03, 2007 11:35 AM
*To:* [email protected]
*Subject:* Re: [Wicket-user] Letting users download flat file

the proper approach is to push a new request target into the request
cycle, see DownloadLink

-igor


On 1/3/07, Frank Silbermann < [EMAIL PROTECTED]> wrote:
>
>  In my project, I have a button that lets the user download the contents
> of a datatable in a form that MSExcel can interpret:
>   Button button = new Button("excelExport") {
>     protected void onSubmit() {
>       getRequestCycle().setRequestTarget(new
> ComponentRequestTarget(dataTable));
>       WebResponse wr=(WebResponse)getResponse();
>       wr.setContentType( "excel/ms-excel; name=myFilename.xls" );
>       wr.setHeader("content-disposition", "attachment;filename=
> myFilename.xls");
>     }
>   };
>
> Suppose I want the button to download a text file containing some
> arbitrary text (not necessarily the contents of a DataTable).  Would I do
> something like this?
>
>   Button button = new Button("textfileExport") {
>     protected void onSubmit() {
>
>       StringResponse response = new StringResponse();
>       response.write(
>               "Whatever I want contained in the output text file..."
>       );
>       getRequestCycle().setResponse(response);
>
>       WebResponse wr=(WebResponse)getResponse();
>       wr.setContentType( "text/plain; name=myFilename.txt" );
>       wr.setHeader("content-disposition", "attachment;filename=
> myFilename.txt");
>     }
>   };
>
> If not, what is the proper approach?
>
>
>
> -------------------------------------------------------------------------
> 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
> [email protected]
> 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
[email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to