2013-11-11 3 views
-1

Почему я получаю «плохой запрос», когда пытаюсь сделать загрузку файла с помощью Spring?Как загрузить файл с помощью значений формы весной?

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public ModelAndView index(//final @ModelAttribute AddCommand addCommand, 
          @RequestParam("name") String name, 
          @RequestParam("desc") String desc, 
          //@ModelAttribute("uploadedFile") UploadedFile uploadedFile, 
          @RequestParam("file") UploadedFile uploadedFile, 
          BindingResult result, 
          HttpServletRequest request) { 

Я не знаю, как добиться того, что я пытаюсь сделать, так как все документы совершенно разные, как сделать простую загрузку файла с именем и описанием:

<% /** http://localhost:8083/admin/add **/ %> 

<%@ page import="web.command.AddCommand" %> 
<%@ include file="/WEB-INF/views/taglibs.jsp" %> 

<h3>Add New</h3> 

<form:form commandName="<%=AddCommand.NAME%>" enctype="multipart/form-data" 
      method="post" 
      role="form"> 

    <table> 
     <tr> 
      <td><form:label path="name">Name</form:label></td> 
      <td><form:input path="name" /></td> 
     </tr> 
     <tr> 
      <td><form:label path="desc">Description</form:label></td> 
      <td><form:input path="desc" /></td> 
     </tr> 

     <tr> 
      <td>File: </td> 
      <td><input type="file" name="file" /> 
      </td> 
     </tr> 

     <tr> 
      <td colspan="2"> 
       <input type="submit" value="Add"/> 
      </td> 
     </tr> 
    </table> 

</form:form> 

Что таким путь должен быть? Я могу отправить форму без файла, но когда я попытался добавить загрузку файла в свою форму, было невозможно выполнить эту простую вещь, потому что Spring, XML и Java слишком многословны и имеют слишком много настроек и конфигураций. Должен быть один очевидный способ сделать это, и нет очевидного ясного пути.

ответ

1

Вы могли бы сделать это так, как описано в учебнике Spring о том, как выполнять загрузку файлов?

http://spring.io/guides/gs/uploading-files/

+0

Нет, не могу. Не в ясной форме. Я получаю «плохой запрос», пытаясь сделать это, поскольку весна затрудняет достижение чего-то простого. Я даже не получаю stacktrace, только «Bad Request», потому что Spring затруднил сделать что-то простое. –

+1

Согласно вашему коду, вы не следовали инструкциям, приведенным в уроке. Например, вы передаете «UploadedFile», а не «MultipartFile». Если вы не можете беспокоиться о том, чтобы следовать простым учебным пособиям, я больше не буду помогать. – Steve

+0

Я действительно хочу, чтобы он работал, но имя «UploadedFile» было из другого урока Spring, в котором был только файл, а не текстовое поле. Теперь я думаю, мне кажется, что я должен добавить XML, чтобы включить MultiPartFile, но он не говорит, какой XML. Я работал с другими фреймворками, где было легко и очевидно сделать это, и с Spring даже сообщение об ошибке не является понятным. Теперь я пытаюсь: public public indexAndView index (@RequestParam ("name") Строковое имя, @RequestParam ("file") Файл MultipartFile, запрос HttpServletRequest) {', и я не думаю, что он сработает. –

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