jeph perro jeph perro - 4 months ago 26
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/vnd.ms-excel");
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 ) ?

Answer
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).