struts2 下载问题java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to
2017-09-20 11:17
656 查看
为action中的inputPath属性初始化值 --> <param name="inputPath">/store/</param> <result type="stream"> <!-- 指定类型stream 以流形式进行传输 ,注意后面的param是result的子元素--> <param name="contentType">image/gif</param> <!--指定文件内容类型和互联网MIME标准中的规定类型一致, 例如text/plain代表纯文本,text/xml表示XML,image/gif 代表GIF图片,image/jpeg代表JPG图片 --> <param name="contentDisposition">attachment;filename="123.gif"</param> <!--指定文件以附件形式弹出下载对话框;filename="123.gif" 指定下载对话框中显示的文件名称; 文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。 如果直接写filename="123.gif",默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="123.gif"--> <param name="bufferSize">4096</param> <!--指定下载缓冲区的大小--> </result> </action>
问题就出在不应该给action指定method属性,因为action配置上method属性后,struts2默认会把 ByteArrayInputStream强制转成String类型。那要在哪里配置哪个方法来执行下载操作,返回下载文件流。其实
<param name="inputName">targetFile</param>就已经指定了DownAction中的getTargetFile()返回下载文件流。所以我们只要去掉action的method属性,然后添加
<param name="inputName">***</param>,
相关文章推荐
- struts2下载文件时出现:java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to 错误
- struts2下载文件时出错提示:java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to java.l
- struts2下载文件时出现:java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to 错误
- struts2的<s:iterator>标签 遇到的问题:java.lang.ClassCastException:cannot be cast to java.lang.String
- spark提示Caused by: java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [Lscala.collection.immutable.Map;
- nested exception is java.lang.ClassCastException:XXX cannot be cast to java.io.Serializable
- Java-Spring:java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***问题解决方案
- java.lang.ClassCastException: android.app.Application cannot be cast to serialport_api.sample.App问题
- 问题 java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to
- 【问题解决:连接异常】 java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 问题
- java.lang.ClassCastException: android.app.Application cannot be cast to serialport_api.sample.App问题
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 文件下载之java.io.FileInputStream cannot be cast to java.lang.String
- java.lang.ClassCastException: android.app.Application cannot be cast to serialport_api.sample.App问题
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...今天
- java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***问题解决方案
- Spring+hibernate中的问题解决:java.lang.ClassCastException: $Proxy6 cannot be cast to com.mqEsb.service.imp
- Validator问题及解决办法——java.lang.ClassCastException: org.apache.struts.validator.ValidatorForm cannot be cast to forms.RegisterForm