Обновление: я думаю, что мой вопрос был плохо сформулирован.Я хотел создать пружину
. Я нашел очень хорошее объяснение того, как это сделать, в старой документации Spring и применил ее к новому Spring 3.0 MVC.В основном это означает, что вам нужно зарегистрировать PropertyEditor в вашем методе контроллеров @InitBinder.После этого все будет работать должным образом (при условии, что вы добавили MultiPartResolver в контекст и задали правильную кодировку формы).Вот мой образец:
@RequestMapping("/scriptfile/**")
@Controller
public class ScriptFileController {
//we need a special property-editor that knows how to bind the data
//from the request to a byte[]
@InitBinder
public void initBinder(WebDataBinder binder)
{
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
}
@RequestMapping(value = "/scriptfile", method = RequestMethod.POST)
public String create(@Valid ScriptFile scriptFile, BindingResult result, ModelMap modelMap) {
if (scriptFile == null) throw new IllegalArgumentException("A scriptFile is required");
if (result.hasErrors()) {
modelMap.addAttribute("scriptFile", scriptFile);
modelMap.addAttribute("showcases", ShowCase.findAllShowCases());
return "scriptfile/create";
}
scriptFile.persist();
return "redirect:/scriptfile/" + scriptFile.getId();
}
}