| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2790 人关注过本帖
标题:在struts前面加自定义的过滤器后,action中获取不到参数
取消只看楼主 加入收藏
星璇凌
Rank: 2
等 级:论坛游民
帖 子:15
专家分:33
注 册:2012-6-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
在struts前面加自定义的过滤器后,action中获取不到参数
我的Jsp页面需要用到多文件上传,用的是uploadify,遇到个问题uploadify结合struts2和spring后,在后台fileList = upload.parseRequest(request);这一句报空,原因是request已经被struts解析为MultipartRequestWrapper类型,不能再次解析了所以无法获取到前台上传的fileList。
我在网上找了很多解决方法都不管用,后来发现一种方法:在struts前面加一个filter,让所有的请求都经过这个filter后再进入到struts的filter,在自定义filter中,不让struts将request解析成MultipartRequestWrapper,于是解决了后台获取不到fileList的问题。
但是随之而来了新的问题:前台传过来的参数没了,set方法也没起作用,是自定义过滤器引起的,但我不知该如何解决!
web.xml中的代码:
<filter>
<filter-name>uploadFilter</filter-name>
<filter-class>com.taiji.jdxt.filter.UploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>uploadFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>


<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


在struts前添加的filter类:
public class UploadFilter extends HttpServlet implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
chain.doFilter(new StrutsRequestWrapper((HttpServletRequest) request), response);
}
@Override

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}
}



uploadify的代码,其中 'formData' : { 'sid' : $(this).attr("id") },就是后台需要获取的参数:
$(function(){
$(".uploadfiles").each(function(){
$(this).uploadify(
{
'swf' : 'blue_theme/uploadify/uploadify.swf',
'uploader' : 'receiveFile.action', // 上传到后台的处理类
'cancelImg' : 'blue_theme/uploadify/cancel.png', // 取消按钮的图片
'fileObjName' : 'uploadify', // 传到后台的对象名
'fileTypeDesc' : '请选择文件',
'fileTypeExts': '*',
'fileSizeLimit' : '8589934592', // 限制文件上传的大小
'buttonText' : '选择文件', // 按钮上的文字
'auto' : true, // 是否自动上传
'multi' : true, // 是否支持多文件上传
'method' : 'GET',
'formData' : { 'sid' : $(this).attr("id") },
'removeComplete' : true,
'removeTimeout' : 3,
});
});
});
搜索更多相关主题的帖子: request filter action spring 过滤器 
2015-07-14 15:17
快速回复:在struts前面加自定义的过滤器后,action中获取不到参数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012487 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved