jeph perro jeph perro - 3 months ago 12x
Java Question

How to dynamically set header value in JSP

I have a JSP file which creates an Excel document.

I want to dynamically set the name of the file to be downloaded.

This is how I set the file name to "test.xsl":

<% response.setContentType("application/");
response.setHeader("Content-Disposition","attachment; filename=" + "test.xsl" );

How can I set the file name to be test-${today's date}.xsl ( i.e. test-20100805.xsl ) ?

String fname = MessageFormat.format( 
    "test-{0,date,yyyyMMdd}.xsl", new Object [] { new Date() } );
response.setHeader("Content-Disposition","attachment; filename=" + fname );

I think this should work for you.

The text in the braces tells the MessageFormat class to insert value 0 from the given array, format it as a date using the format yyyyMMdd (e.g. 20161231 for Dec 31st 2016).