有段时间没搞java web编程了,很多错误都比较低级,不应该出现,小记,提醒自己应该细心。
- 关于用spring upload文件的错误:
写了测试页面,然后进行文件上传测试,忽然发现之前能够用curl调试成功的接口,居然报错了。错误信息如下:
2010-09-27 11:12:44,926 DEBUG [org.springframework.beans.BeanUtils] - No property editor [org.springframework.web.multipart.MultipartFileEditor] found for type org.springframework.web.multipart.MultipartFile according to 'Editor' suffix convention
2010-09-27 11:12:44,927 DEBUG [org.springframework.web.servlet.handler.SimpleMappingExceptionResolver] - Resolving exception from handler [com.roosher.web.mvc.SpaceController@15f6479]: org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found
2010-09-27 11:12:44,928 DEBUG [org.springframework.web.servlet.handler.SimpleMappingExceptionResolver] - Resolving to view 'uncaughtException' for exception of type [org.springframework.beans.ConversionNotSupportedException], based on exception mapping [.lang.Exception]
2010-09-27 11:12:44,928 DEBUG [org.springframework.web.servlet.handler.SimpleMappingExceptionResolver] - Exposing Exception as model attribute 'exception'
2010-09-27 11:12:44,932 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'uncaughtException'; model is {exception=org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found}
org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found
主要错误就是
org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile';
怎么看都不知道错在哪里,看异常提示以为是编写PropertiesEditor的错误,或者跟Convert相关,但找寻代码没有看着痕迹。最后在调试页面看到低级的错误:
<form action="/roosher-backend/space/image" method="POST" enctype="application/x-www-form-urlencoded">
......
</form>
原来是enctype错了,应该是 enctype="multipart/form-data"。
2. 关于BindingResult
Spring mvc2.5,3.0中,有关于 @ModelAttribute的注解,它可以帮你自动绑定表单的值,填充到被注解的属性当中。如 @ModelAttribute User user,该属性会在ModelMap中,添加以user为key的 User对象,然后绑定的时候会有一些绑定结果,就是BindingResult。但是BindingResult跟@ModelAttribute的相对位置比较重要,也就说跟方法参数,方法签名有关系。
BindingResult必须紧跟@ModelAttribute的后面,如
@Controller
public class Payer {
@RequestMapping(...)
public String pay(@ModelAttribute User user,BindingResult result) {
}
}
如果是类似下面的情况就可能有"java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!"抛出来,具体可以查看org.springframework.web.bind.annotation.support.HandlerMethodInvoker
@Controller
public class Payer {
@RequestMapping(...)
public String pay(@ModelAttribute User user,@RequestParam Hello hello,
BindingResult result) {
}
}
分享到:
相关推荐
赠送jar包:sentinel-spring-webmvc-adapter-1.8.0.jar; 赠送原API文档:sentinel-spring-webmvc-adapter-1.8.0-javadoc.jar; 赠送源代码:sentinel-spring-webmvc-adapter-1.8.0-sources.jar; 赠送Maven依赖信息...
赠送jar包:sentinel-spring-webmvc-adapter-1.8.0.jar; 赠送原API文档:sentinel-spring-webmvc-adapter-1.8.0-javadoc.jar; 赠送源代码:sentinel-spring-webmvc-adapter-1.8.0-sources.jar; 赠送Maven依赖信息...
赠送jar包:springfox-spring-webmvc-3.0.0.jar; 赠送原API文档:springfox-spring-webmvc-3.0.0-javadoc.jar; 赠送源代码:springfox-spring-webmvc-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-...
赠送jar包:springfox-spring-webmvc-3.0.0.jar; 赠送原API文档:springfox-spring-webmvc-3.0.0-javadoc.jar; 赠送源代码:springfox-spring-webmvc-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-...
赠送jar包:spring-webmvc-5.2.15.RELEASE.jar; 赠送原API文档:spring-webmvc-5.2.15.RELEASE-javadoc.jar; 赠送源代码:spring-webmvc-5.2.15.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-...
赠送jar包:spring-webmvc-5.3.15.jar; 赠送原API文档:spring-webmvc-5.3.15-javadoc.jar; 赠送源代码:spring-webmvc-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.3.15.pom; 包含翻译后的API...
spring-webmvc-portlet-3.2.7.RELEASE.jarspring-webmvc-portlet-3.2.7.RELEASE.jarspring-webmvc-portlet-3.2.7.RELEASE.jarspring-webmvc-portlet-3.2.7.RELEASE.jar
赠送jar包:spring-webmvc-5.3.7.jar; 赠送原API文档:spring-webmvc-5.3.7-javadoc.jar; 赠送源代码:spring-webmvc-5.3.7-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.3.7.pom; 包含翻译后的API文档...
开发工具 spring-webmvc-4.3.6.RELEASE开发工具 spring-webmvc-4.3.6.RELEASE开发工具 spring-webmvc-4.3.6.RELEASE开发工具 spring-webmvc-4.3.6.RELEASE开发工具 spring-webmvc-4.3.6.RELEASE开发工具 spring-web...
赠送jar包:spring-webmvc-5.0.8.RELEASE.jar; 赠送原API文档:spring-webmvc-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-webmvc-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.0.8....
赠送jar包:spring-webmvc-5.3.10.jar; 赠送原API文档:spring-webmvc-5.3.10-javadoc.jar; 赠送源代码:spring-webmvc-5.3.10-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.3.10.pom; 包含翻译后的API...
Spring Web MVC模块(spring-webmvc-5.2.3.RELEASE.jar)是Spring框架中用于构建MVC(Model-View-Controller)架构的Web应用程序的核心部分。它为Web开发提供了一种强大且灵活的模型绑定、数据验证、异常处理和视图...
spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包
赠送jar包:spring-webmvc-5.3.7.jar; 赠送原API文档:spring-webmvc-5.3.7-javadoc.jar; 赠送源代码:spring-webmvc-5.3.7-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.3.7.pom; 包含翻译后的API文档...
spring-webmvc-4.3.7.RELEASE-sources.jar spring-webmvc-4.3.7.RELEASE-sources.jar
spring-webmvc-portlet-4.0.0.RELEASE.jar
"spring-mvc-showcase"项目是Spring官网提供的一个实战示例,旨在帮助开发者深入理解和运用Spring MVC的关键特性。本文将围绕这个项目,详细介绍Spring MVC的核心概念、工作原理以及如何在实际开发中运用。 一、...
赠送jar包:spring-webmvc-5.0.8.RELEASE.jar; 赠送原API文档:spring-webmvc-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-webmvc-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.0.8....
`spring-mvc-4.2.xsd`是Spring MVC 4.2版本的XML Schema定义文件。这个文件包含了所有在Spring MVC 4.2版本中可以使用的XML配置元素和属性,例如`<mvc:annotation-driven>`、`<bean>`、`<context:component-scan>`等...
spring-webmvc-portlet-3.0.2.RELEASE