2015-10-15 3 views
2

Я получил этот Jsp файл:Spring MVC - Составные данные формы

<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> 

Вот мой класс формы:

public class DemandeForm { 

    private MultipartFile[] file; 

    public MultipartFile[] getFile() { 
     return file; 
    } 

    public void setFile(final MultipartFile[] pFile) { 
     this.file = pFile; 
    } 
} 

И мой контроллер:

@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 

Ошибка появилась, так как я добавил charse=UTF-8 по значению enctype. Мне нужно это, потому что у меня есть файлы с этими акцентами и символы UTF-8.

Как я могу справиться с этим?

ответ

0

вы можете установить параметр контроллера в

@RequestParam("file") MultipartFile file 

, то вы можете получить имя файла, размер, и т.д. ... как

file.getOriginalFilename() 
1

ли вы попробовать с:

<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" 

в вашей форме

Смежные вопросы