1. 程式人生 > >SpringMVC 無法獲取請求提交的資料

SpringMVC 無法獲取請求提交的資料

分析:

前臺

<!--縮圖 上傳控制元件-->
                    <li>
                        <div class="item-content">
                            <div class="item-inner">
                                <div class="item-title label">縮圖</div>
                                <div class="item-input">
                                    <input type="file" id="shop-img">
                                </div>
                            </div>
                        </div>
                    </li>
                    <!--店鋪簡介 textarea-->
                    <li class="align-top">
                        <div class="item-content">
                            <div class="item-inner">
                                <div class="item-title label">店鋪簡介</div>
                                <div class="item-input">
                                    <textarea id="shop-desc" placeholder="店鋪簡介"></textarea>
                                </div>
                            </div>
                        </div>
                    </li>

提交資料: 使用Ajax提交

$.ajax({
                url:registerShopUrl,
                type:'POST',
                data:formData,
                contentType:false,
                processData:false,
                cache:false,
                success:function (data) {
                    if(data.success){
                        $.toast('提交成功');
                    }else {
                        $.toast('提交失敗!'+data.errMsg);
                    }
                    $("#captcha_img").click();
                }

            })

後臺 使用SpringMVC搭建

private Map<String,Object> registerShop(HttpServletRequest request){
。。。
}

現象:Ajax提交資料後 獲取不到提交的資料

原因:缺少上傳檔案解析器,如果沒有 不僅提交的檔案無法獲取,其他的資料都無法獲取

解決方案: 在spring配置檔案中新增:

<!--檔案上傳解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <!--1024*1024*20=20M-->
        <!--上傳檔案最大值-->
        <property name="maxUploadSize" value="20971520"></property>
        <!--記憶體最大值-->
        <property name="maxInMemorySize" value="20971520"></property>
    </bean>