spirng Mvc与sitemesh问题整合问题

悠悠-我心 2015-10-08 04:50:10
我在做文件上传是使用spingmvc 多文件上传 框架中加入了sitemesh3.0

//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
在执行这个代码时报如下错误

Servlet.service() for servlet [springMVC] in context with path [/ManagePlatform] threw exception [Request processing failed;
nested exception is java.lang.ClassCastException: org.sitemesh.webapp.contentfilter.HttpServletRequestFilterable cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest] with root cause
...全文
243 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小腮牙 2017-08-05
  • 打赏
  • 举报
回复
SpringMVC没有配置CommonsMultipartResolver
jktantan 2015-10-10
  • 打赏
  • 举报
回复
如果不是HTML5,AJAX无法传递文件。如果无刷新上传又非HTML5的方式,其实网上有很多方法。其中有一种就是上传的时候开一个隐藏的IFRAME,把内容提交到IFRAME中。然后判断IFRAME的返回STATUS。
悠悠-我心 2015-10-10
  • 打赏
  • 举报
回复
引用 5 楼 u010425898 的回复:
[quote=引用 4 楼 u010425898 的回复:] SiteMesh 不应该是个filter吗,我用siteMesh也就只用到了它和页面的整合,使得页面代码更少;多(单)文件上传,在spring3.x及以后都可以不用这么麻烦,MultipartHttpServletRequest这个操作spring已经封装好了的,它自己会去判断是否是文件上传请求,如果是则会自动转换;自己则只需在controller的方法中用参数List<MultipartFile> files(多文件),MultipartFile file(单文件),来接收就好了。 最后提一下,你报的错是HttpServletRequestFilterable不能强转为MultipartHttpServletRequest,这种在我做文件上传的时候也没遇到过,具体原因要看你controller部分的代码
还有一个最重要的,需要配置multipartResolver,这个网上都有很多的[/quote] 错误的地方 我找到了,你说的配置multipartResolver相关的我都设置过了,在这方面没问题。 错误是这样产生的: 我在做多文件上传的同时,表单里还有其它元素,比如输入框 要求输入的东西,因为要实现无刷新上传所以我没有使用表单的默认submit提交,改用Ajax异步请求,结果出现了request的转换问题。 关键在于实现页面无刷新及还有同时提交表单非文件内容,有没有好有实现呢?谢谢!
oh_Maxy 2015-10-10
  • 打赏
  • 举报
回复
引用 2 楼 liu_yulong 的回复:
什么叫直接强转呢?
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; 你这样的操作,就是直接强转了呀
悠悠-我心 2015-10-09
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
直接强转可以吗? http://blog.163.com/songyalong1117@126/blog/static/17139189720144273308468/
org.sitemesh.webapp.contentfilter.HttpServletRequestFilterable cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest 怎么强转呢,之前没有使用过SiteMesh3,对这个request的处理不有问题?
悠悠-我心 2015-10-09
  • 打赏
  • 举报
回复
什么叫直接强转呢?
  • 打赏
  • 举报
回复
引用 4 楼 u010425898 的回复:
SiteMesh 不应该是个filter吗,我用siteMesh也就只用到了它和页面的整合,使得页面代码更少;多(单)文件上传,在spring3.x及以后都可以不用这么麻烦,MultipartHttpServletRequest这个操作spring已经封装好了的,它自己会去判断是否是文件上传请求,如果是则会自动转换;自己则只需在controller的方法中用参数List<MultipartFile> files(多文件),MultipartFile file(单文件),来接收就好了。 最后提一下,你报的错是HttpServletRequestFilterable不能强转为MultipartHttpServletRequest,这种在我做文件上传的时候也没遇到过,具体原因要看你controller部分的代码
还有一个最重要的,需要配置multipartResolver,这个网上都有很多的
  • 打赏
  • 举报
回复
SiteMesh 不应该是个filter吗,我用siteMesh也就只用到了它和页面的整合,使得页面代码更少;多(单)文件上传,在spring3.x及以后都可以不用这么麻烦,MultipartHttpServletRequest这个操作spring已经封装好了的,它自己会去判断是否是文件上传请求,如果是则会自动转换;自己则只需在controller的方法中用参数List<MultipartFile> files(多文件),MultipartFile file(单文件),来接收就好了。 最后提一下,你报的错是HttpServletRequestFilterable不能强转为MultipartHttpServletRequest,这种在我做文件上传的时候也没遇到过,具体原因要看你controller部分的代码
oh_Maxy 2015-10-08
  • 打赏
  • 举报
回复
直接强转可以吗? http://blog.163.com/songyalong1117@126/blog/static/17139189720144273308468/

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧