日期:2014-05-17  浏览次数:20863 次

struts中servlet 文件上传sfu.parseRequest(request) ;request中有值但取不到值
ServletFileUpload sfu = new ServletFileUpload(difactory);
List list = null;
list = sfu.parseRequest(request);

如题,jsp页面提交form
<form id="form1" method="post" enctype="multipart/form-data" action="../FileuploadServlet">
 file:<input type="file"  name="txt">
                 <input  type="submit"> 
</form>

能进入到servlet中,用debug看request中multi下的files中有值,为
{txt=[name=D:\aa.xls, StoreLocation=F:\Oracle\weblogic9\user_projects\domains\jlvisual_domain\.\servers\AdminServer\tmp\_WL_user\_appsdir_jlvisual_dir\7frw6z\public\upload_9940d9eb_dcbc_4561_8994_9924c52d7c50_00000001.tmp, size=19968 bytes, isFormField=false, FieldName=txt]}

但是list却一直没有值,是哪里出错了?
------解决方案--------------------
http://www.iteye.com/problems/87410
------解决方案--------------------
是因为Struts2的默认拦截器对request做了包装
在Struts2配置文件中加上这句话试试
 <constant name="struts.action.excludePattern" value="/servlet/.*"/>