我正在尝试通过构建简单的网站来学习 Spring 框架,现在我遇到了一个问题。
我想做这样的事情:用户选择要上传的文件并从列表中选择它是什么类型的文件。现在我有这样的事情:
<form:form modelAttribute="uploadItem" method="post" enctype="multipart/form-data">
<fieldset>
<div class="form_elem">
<label for="file">File</label>
<input type="file" name="fileData"/>
</div>
<div class="form_elem">
<label for="file_type">File type</label>
<form:select path="fileType">
<form:options items="${fileTypes}" />
</form:select>
</div>
<input type="submit"/>
</fieldset>
现在在我的控制器中我有
@RequestMapping(value = "/addWordFile", method = RequestMethod.GET)
public String showFileAdder(Model model) {
model.addAttribute(new UploadItem());
model.addAttribute("fileTypes", Arrays.asList("first type", "second type"));
return "questionFileAdd";
}
@RequestMapping(value = "/addWordFile", method = RequestMethod.POST)
public String processUploadedFile(UploadItem uploadItem, Model model)
throws Exception {
String type=uploadItem.getFileType();
return showFileAdder(model);
}
这是问题所在,当用户选择文件类型时,我只得到一个字符串,我需要手动创建一个对象,比如 SimpleFileFileReader 使用类作为名称,或者只对我支持的每种文件类型使用大 switch-case 语句。
是否可以以 html 形式显示字符串,但是当它被处理时,我会得到某个类的对象?