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: wicket-user@lists.sourceforge.net
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]
<mailto:[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=DEVDE
V
_______________________________________________
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