Почему я получаю «плохой запрос», когда пытаюсь сделать загрузку файла с помощью 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 слишком многословны и имеют слишком много настроек и конфигураций. Должен быть один очевидный способ сделать это, и нет очевидного ясного пути.
Нет, не могу. Не в ясной форме. Я получаю «плохой запрос», пытаясь сделать это, поскольку весна затрудняет достижение чего-то простого. Я даже не получаю stacktrace, только «Bad Request», потому что Spring затруднил сделать что-то простое. –
Согласно вашему коду, вы не следовали инструкциям, приведенным в уроке. Например, вы передаете «UploadedFile», а не «MultipartFile». Если вы не можете беспокоиться о том, чтобы следовать простым учебным пособиям, я больше не буду помогать. – Steve
Я действительно хочу, чтобы он работал, но имя «UploadedFile» было из другого урока Spring, в котором был только файл, а не текстовое поле. Теперь я думаю, мне кажется, что я должен добавить XML, чтобы включить MultiPartFile, но он не говорит, какой XML. Я работал с другими фреймворками, где было легко и очевидно сделать это, и с Spring даже сообщение об ошибке не является понятным. Теперь я пытаюсь: public public indexAndView index (@RequestParam ("name") Строковое имя, @RequestParam ("file") Файл MultipartFile, запрос HttpServletRequest) {', и я не думаю, что он сработает. –