有关springmvc3.1.3文件上传,出现400 的错误问题!

阅读更多

       使用SptingMVC3.1.3 对于文件上传提交的表单我们都会设置:enctype="multipart/form-data" 的一个设置, 那么值得注意的问题出现了, 对于表单post提交的数据无法绑定到后台的参数中, 紧接着服务器会向浏览器客户端抛HTTP STATUS 400 的错误, 或者出现 类型转换的的异常, 这个问题从开始一直困扰着我好些天,一直都不能解决这个问题,这个问题一直困扰自己好些天。 先贴出自己的错误的 服务器端会向Broswer返回 400 的bad request 的错误! 看看大家能否看出错误的地方?大家一起帮忙找找错误在哪里? 

贴以前的错误配置代码 :

web.xml



  springmvc	
  
  
  
  
  	characterEncoding
  	org.springframework.web.filter.CharacterEncodingFilter
  
  
  	characterEncoding
  	/*
  
  
  	spring
  	org.springframework.web.servlet.DispatcherServlet
  	1
  
  
  
  	spring
  	/spring/*
  
  
    index.jsp
  

 



				
				
				
				
				
				
					
					
					
					
				
				
				
				
				
					
						
							views
						
					
					
				
				
				

 

default.(class)=org.springframework.web.servlet.view.JstlView
default.url=/jsps/index.jsp

 

package com.springmvc.simples.controller;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;


/**
 * 文件上传: 单个文件上传  与多个文件的上传
 * @version 1.0  @author 高元东
 *@mailto [email protected]
 * 2013-1-21
 */
@Controller
@Scope("prototype")
@RequestMapping("/fileupload")
public class FileUploadActionController {
	
	
	@RequestMapping(value ="/uploadOne",method=RequestMethod.POST)
	public String fileUploadOne(
		@RequestParam("file")	MultipartFile file) {
		
	/*	if(!file.isEmpty()) {
			
			System.err.println("file name :" +file.getOriginalFilename());
		}*/
		System.err.println("okokoko");
		return "default";
	}
	
}

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>



  
    
    首页
	
	
	    
	
	
	
  
  
  
    
    
    
springmvc注解的配置 无参数的测试
springmvc注解的配置 无参数为字符串的配置
springmvc注解的配置 基于RESTFULL字符串的配置
springmvc注解的配置 基于RESTFULL多参数的配置

文件上传部分

单个文件上传.....


  代码上传完毕!看看能否看出哪里出错了 ,去网上求解, 网上有大量文件上传的例子, 都看和自己的配置差不多,都是大同小异 , 自己实在是没有办法, 自己只有跟源码一步一步的进行调试 跟下去,加上log4j日志。 对应Springmvc的调试跟代码 跟源码那也要有一个入口点, 就像Struts2一样 ,的有一个核心过滤器 StrutsPreparedAndExecuteFilter ,而对应我们的springmvc的核心类  那就是DispatcherServlet 此类就是Springmvc的核心, 学springmvc我们都知道这个servlet是做什么用的,简单的来说它是处理一个请求,并提供映射和异常处理的功能! 我们看看此Servlet的大纲视图  看看 有什么猫咪 ? 晕?? 这怎么有个成员变量 》???

 

 

有关springmvc3.1.3文件上传,出现400 的错误问题!_第1张图片
 
 

哦  它的是从 这个命名空间中的bean的工厂中获取的bean的名称: ??  不敢确定  ? 

看着像我们在xml中配置的那个bean  ????  难道  ??? 真是? 看看能否有什么set  方法吗???

 我们继续往下找, 单可以肯定在启动项目的时候会进行一系列的初始化我们在 xml配置的那些处理器  也就是我们的handler  Resolver 


有关springmvc3.1.3文件上传,出现400 的错误问题!_第2张图片
 

一大片都是 resolver  



有关springmvc3.1.3文件上传,出现400 的错误问题!_第3张图片
 
 

 

直接把它卡在源代码的456行   :: 


有关springmvc3.1.3文件上传,出现400 的错误问题!_第4张图片
 

不看什么 看logger日志我们都知道 , 要查找名称为:multipartResolver 的bean  再看我们的代码:  娘的, 真的少加id=“multipartResolver ”了。


有关springmvc3.1.3文件上传,出现400 的错误问题!_第5张图片
 

那肯定是我们配置的org.springframework.web.multipart.commons.CommonsMultipartResolver 根本没有起到作用, 一定要加上id=“multipartResolver ” 不然, 在你的项目进行启动的时候会找不到这样的bean的。 小小的错误,小小的失误 真的很烦人。

  输出的日志::



 

很明显  我们配置的org.springframework.web.multipart.commons.CommonsMultipartResolver  根本没有起到作用!! 对应别人的代码我们只能参考吗, 不能一味的去copy  不跟自己有空自己去看看源码,

正确的是::

 



 

 
有关springmvc3.1.3文件上传,出现400 的错误问题!_第6张图片
 
有关springmvc3.1.3文件上传,出现400 的错误问题!_第7张图片
 

 

最后   要注意的是  : 在我们配置的bean中一定要加上 id ="multipartResolver"  不然你配置的也没有用的  。 不然你的表单设置成  multipart/form-data  是无法绑定参数的  会出现类型转换的异常!

在写的地方哪里有不清楚的地方,请见谅,我也是项目的需要 ,刚刚碰Springmvc 。把正确简单的demo 上传上去。

  • springmvcdemo.zip (4.5 MB)
  • 下载次数: 31
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第8张图片
  • 大小: 11.3 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第9张图片
  • 大小: 9.9 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第10张图片
  • 大小: 19.4 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第11张图片
  • 大小: 19.7 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第12张图片
  • 大小: 20.6 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第13张图片
  • 大小: 6.8 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第14张图片
  • 大小: 9.7 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第15张图片
  • 大小: 9.7 KB
  • 有关springmvc3.1.3文件上传,出现400 的错误问题!_第16张图片
  • 大小: 8.9 KB
  • 查看图片附件

你可能感兴趣的:(文件上传,springmvc,MultipartFile)