在struts.xml配置文件下载如下:
<action name="download" class="com.test.Action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">filename="struts.xsl"</param>
<param name="inputName">downloadFile</param>
</result>
</action>
问题是<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">filename="struts.xsl"</param>
文件名称和文件类型都是写死在xml里面的。 如何让文件下载功能的文件名和文件类型能够动态的加载呢?谢谢

解决方案 »

  1.   

    那两个配置参数不是必须的。HttpServletResponse rp = (HttpServletResponse)ctx.get( StrutsStatics.HTTP_RESPONSE );
    // 指定下载文件名称
    rp.setHeader("Content-Disposition", 
       "attachment; filename=\"" +filename + "\"");
      

  2.   

    在域中设置两个值有get/set,通过${xxx}取。
      

  3.   

    +1
    这个还要咋写
    莫非这样?
    <param name="contentType">${contentType}</param>
      

  4.   

    刚刚试了一下
    能成功在actiuon类中添加private String fileName;
    public void setFileName(String fileName){}
    public String getFileName;
    <param name="contentDisposition">filename="${fileName}"</param>
    能够获取到值
      

  5.   

    就是这样解决的。又学到了一招。
    另外通过get,set方法把下载的路径呀,文件名呀,直接传到后台action里处理也行。