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