大家好,有个很棘手的问题希望大家解决一下:谢谢
struts2上传文件:jsp页面为:
<form id="theForm" name="theForm" method="post" enctype="multipart/form-data">
<td>  
<input name="doc" type="FILE"  class="input-text" style="width: 500px;" value="">
</td>
</form>
action中为:
private File doc;//上传文件
get set 方法都有为什么action中得到的文件为null,其他的也没地方设置了呀,,,这么晚了,在的朋友希望大家解决下谢谢!!!

解决方案 »

  1.   

    struts.xml配置文件中对action的配置需加拦截器
    <interceptor-ref name="fileUploadStack"/>
      

  2.   

    先谢谢啊,这么晚了还来帮我解决,
    struts。xml文件中这么写的,,,要怎么加呢?
    <include file="struts/struts_login.xml" />之前别人写的也好像没加就可以
      

  3.   

    这个必须得加
    <action name="upFile" class="webAction" method="upFile">
            <interceptor-ref name="params"/>
            <interceptor-ref name="fileUploadStack"/>
                <result>ok.jsp</result>
                <result name="error">/error.jsp</result>
            </action>
    form中使用
    <form id="theForm" name="theForm" action="upFile.do" method="post" enctype="multipart/form-data">
      

  4.   

    我在配置文件中加了:<struts>
    <package name="meetingInfo" extends="struts-base,json-default,struts-default">

    <interceptors>
               <interceptor-stack name="defaultUpload">
                   <interceptor-ref name="fileUpload">
        <param name="maximumSize">10240000</param>
       </interceptor-ref>
                  <interceptor-ref name="paramsPrepareParamsStack"/>
               </interceptor-stack>
            </interceptors> 
    <default-interceptor-ref name="defaultUpload"></default-interceptor-ref>
      
    <action name="meetingInfo" class="com.lsra.app.consultativeCommittee.action.MeetingInfoAction">
    。。但还是没读取到:doc---File 还是为null
    感觉离做出来越来越近了,还差一点点吧
      

  5.   

    你这里定义了拦截器,但是没在action的配置中引用
      

  6.   

    <struts> <package name="postageCancelApprove" extends="json-default,struts-default">
    <interceptors>
               <interceptor-stack name="defaultUpload">
                   <interceptor-ref name="fileUpload">
        <param name="maximumSize">10240000</param>
       </interceptor-ref>
                  <interceptor-ref name="paramsPrepareParamsStack"/>
               </interceptor-stack>
            </interceptors> 
    <default-interceptor-ref name="defaultUpload"></default-interceptor-ref>  

    <action name="postageCancelApprove" class="com.lsra.app.postageCancel.action.PostageCancelApproveAction">

    <result name="createPostageCancelApprove" type="dispatcher">
    /apps/postageCancel/postageCancelApproveCreate.jsp
    </result>
    <result name="excelImport" type="dispatcher">
    /apps/postageCancel/excelImport.jsp
    </result>
    <result name="modifyPostageCancelApprove" type="dispatcher">
    /apps/postageCancel/postageCancelApproveModify.jsp
    </result>
    <result name="showPostageCancelApprove" type="dispatcher">
    /apps/postageCancel/postageCancelApproveShow.jsp
    </result>
    <result name="queryPageForExamine" type="dispatcher">
    /apps/postageCancel/queryPostageCancelApproveForExamine.jsp
    </result>
    <result name="queryPageForReply" type="dispatcher">
    /apps/postageCancel/queryPostageCancelApproveForReply.jsp
    </result>
    <result name="queryPageForStop" type="dispatcher">
    /apps/postageCancel/queryPostageCancelApproveForStop.jsp
    </result>
    <result name="queryPostageCancelApprLog" type="dispatcher">
    /apps/postageCancel/queryPostageCancelApprLog.jsp
    </result>
    <result name="showPostageCancelApprLog" type="dispatcher">
    /apps/postageCancel/postageCancelApprLogShow.jsp
    </result>
    </action>

    <action name="downloadCancelProject" class="com.lsra.app.postageCancel.action.PostageCancelApproveAction" method="downloadCancelProject">
    <result type="stream">
    <param name="contentType">
    application/octet-stream
    </param>
    <param name="inputName">downloadCancelProjectInputStream</param>
    <param name="contentDisposition">
    attachment;filename="${downloadCancelProjectFileName}"
    </param>
    <param name="bufferSize">4096</param>
    </result>
    </action>
     <action name="downloadPostageCancelApproveTemplate" class="com.lsra.app.postageCancel.action.PostageCancelApproveAction" method="downloadPostageCancelApproveTemplate">
    <result type="stream">
    <param name="contentType">
    application/octet-stream
    </param>
    <param name="inputName">downloadPostageCancelApproveTemplateInputStream</param>
    <param name="contentDisposition">
    attachment;filename="${downloadPostageCancelApproveTemplateFileName}"
    </param>
    <param name="bufferSize">4096</param>
    </result>
    </action>
    <action name="downloadPostageCancelApprove" class="com.lsra.app.postageCancel.action.PostageCancelApproveAction" method="downloadPostageCancelApprove">
    <result type="stream">
    <param name="contentType">
    application/octet-stream
    </param>
    <param name="inputName">downloadPostageCancelApproveInputStream</param>
    <param name="contentDisposition">
    attachment;filename="${downloadPostageCancelApproveFileName}"
    </param>
    <param name="bufferSize">4096</param>
    </result>
    </action>
    </package>
    </struts>上面是他们的配置文件
      

  7.   

    <struts>
    <package name="meetingInfo" extends="struts-base,json-default,struts-default">

    <interceptors>
               <interceptor-stack name="defaultUpload">
                   <interceptor-ref name="fileUpload">
        <param name="maximumSize">10240000</param>
       </interceptor-ref>
                  <interceptor-ref name="paramsPrepareParamsStack"/>
               </interceptor-stack>
            </interceptors> 
    <default-interceptor-ref name="defaultUpload"></default-interceptor-ref>
      
    <action name="meetingInfo" class="com.lsra.app.consultativeCommittee.action.MeetingInfoAction">
    <result name="queryMeetingInfo" type="dispatcher">
    /apps/consultativeCommittee/meetingInfoList.jsp
    </result>
    <result name="showMeetingInfo" type="dispatcher">
    /apps/consultativeCommittee/meetingInfoShow.jsp
    </result>
    <result name="createMeetingInfo" type="dispatcher">
    /apps/consultativeCommittee/meetingInfoCreate.jsp
    </result>
    <result name="modifyMeetingInfo" type="dispatcher">
    /apps/consultativeCommittee/meetingInfoModify.jsp
    </result>

    </action>
    </package>
    </struts>上面是我的配置文件