Summary
Tag name:
<tr:fileDownloadActionListener>
The fileDownloadActionListener tag is a declarative way to allow an action source (<commandButton>, <commandLink>, etc.) to programatically send the contents of a file to the user, optionally with a specific content type and filename.
Example:
This example sends a simple "Hello there!" file to the user.
<h:commandButton value="Say Hello">
<tr:fileDownloadActionListener filename="hello.txt"
contentType="text/plain; charset=utf-8"
method="#{bean.sayHello}"/>
</h:commandButton>
public void sayHello(FacesContext context, OutputStream out) throws IOException
{
OutputStreamWriter w = new OutputStreamWriter(out, "UTF-8");
w.write("Hi there!");
// The stream is automatically closed, but since we wrapped it,
// we'd better flush our writer
w.flush();
}
Attributes
| Name | Type | Supports EL? | Description |
|---|---|---|---|
| contentType | Object | Yes | the MIME type of the file, for example text/plain, text/csv, application/pdf, etc. |
| filename | Object | Yes | the proposed filename for the object. When set, a "Save File" dialog will typically be displayed, though this is ultimately up to the browser. If not set, the content will typically be displayed inline in the browser if possible. |
| method | Object | Only EL | the method that will be used to download the file contents. The method takes two arguments, a FacesContext and an OutputStream. The OutputStream will be automatically closed, so the sole responsibility of this method is to write all bytes to the OutputStream. |