Java Spring MVC-多部分表单数据
我得到了这个jsp文件:Java Spring MVC-多部分表单数据,java,spring,jsp,spring-mvc,multipartform-data,Java,Spring,Jsp,Spring Mvc,Multipartform Data,我得到了这个jsp文件: <form:form class="main-section" modelAttribute="demandeForm" commandName="demandeForm" name="demandeForm" method="post" enctype="multipart/form-data;charset=UTF-8" action="/validate.do?valider=valider"> <!-- Some input text --
<form:form class="main-section" modelAttribute="demandeForm" commandName="demandeForm"
name="demandeForm" method="post" enctype="multipart/form-data;charset=UTF-8" action="/validate.do?valider=valider">
<!-- Some input text -->
<ul>
<li>
<input type="file" name="file" >
</li>
<li>
<input type="file" name="file" >
</li>
<li>
<input type="file" name="file" >
</li>
</ul>
和我的控制器:
@RequestMapping(method = RequestMethod.POST, params = "valider")
public String valider(@Valid final DemandeForm pForm, final BindingResult pResult, final Model pModel, final HttpServletRequest pRequest) {
// do things
if (pResult.hasErrors()) {
return MY_VUE;
}
// do things
}
pResult
有绑定错误,下面是错误:
Failed to convert property value of type java.lang.String[]
to required type org.springframework.web.multipart.MultipartFile[]
for property file; nested exception is java.lang.IllegalStateException:
Cannot convert value of type [java.lang.String] to required type
[org.springframework.web.multipart.MultipartFile] for property file[0]:
no matching editors or conversion strategy found
自从我在enctype值上添加了charse=UTF-8
之后,就出现了错误。我需要这个,因为我有这个口音和UTF-8字符的文件
如何处理此问题?您可以将控制器参数设置为
@RequestParam("file") MultipartFile file
然后您可以获得文件名、大小等。。。像
file.getOriginalFilename()
您是否尝试过:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding"><value>utf-8</value></property>
</bean>
以你的形式
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding"><value>utf-8</value></property>
</bean>
enctype="multipart/form-data;charset=UTF-8"