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
...全文
187 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小腮牙 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/
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-08 04:50
社区公告
暂无公告