我的jsp页面中有一些输入字段,可以动态创建或删除字段。所以我必须将输入字段映射到spring mvc的@ModelAttributes。但我不知道如何映射输入字段。
我想提交一份由以下内容组成的表格:
<form enctype="multipart/form-data">
<!-- code omitted -->
<div>
<input type="text" name="content">
<input type="file" name="file">
</div>
<div>
<input type="text" name="content">
<input type="file" name="file">
</div>
<div>
<input type="text" name="content">
<input type="file" name="file">
</div>
</form>
这些字段应该引导到Java classe(@ModelAttribute):
package com.musicovery12.cookingstep.web.command;
import java.util.Arrays;
import java.util.List;
public class AddRecipeCommand {
private String mainImageUrl;
private String foodName;
private String kcal;
private String ingredients;
private String foodDescription;
// I do not know how to map into this field.
private List<RecipeStep> recipeSteps;
private String videoUrl;
public String getMainImageUrl() {
return mainImageUrl;
}
public void setMainImageUrl(String mainImageUrl) {
this.mainImageUrl = mainImageUrl;
}
public String getFoodName() {
return foodName;
}
public void setFoodName(String foodName) {
this.foodName = foodName;
}
public String getKcal() {
return kcal;
}
public void setKcal(String kcal) {
this.kcal = kcal;
}
public String getIngredients() {
return ingredients;
}
public void setIngredients(String ingredients) {
this.ingredients = ingredients;
}
public String getFoodDescription() {
return foodDescription;
}
public void setFoodDescription(String foodDescription) {
this.foodDescription = foodDescription;
}
public List<RecipeStep> getRecipeSteps() {
return recipeSteps;
}
public void setRecipeSteps(List<RecipeStep> recipeSteps) {
this.recipeSteps = recipeSteps;
}
public String getVideoUrl() {
return videoUrl;
}
public void setVideoUrl(String videoUrl) {
this.videoUrl = videoUrl;
}
@Override
public String toString() {
return "AddRecipeCommand [mainImageUrl=" + mainImageUrl + ", foodName="
+ foodName + ", kcal=" + kcal + ", ingredients=" + ingredients
+ ", foodDescription=" + foodDescription + ", recipeSteps="
+ recipeSteps + ", videoUrl=" + videoUrl + "]";
}
}
该命令类具有非基本类型的属性。它的RecipeStep:
package com.musicovery12.cookingstep.web.command;
import org.springframework.web.multipart.MultipartFile;
public class RecipeStep {
private String content;
private MultipartFile image;
public RecipeStep() {}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public MultipartFile getImage() {
return image;
}
public void setImage(MultipartFile image) {
this.image = image;
}
@Override
public String toString() {
return "RecipeStep [content=" + content + ", image=" + image + "]";
}
}
所以我的问题是, 如何将表单的输入字段映射到上面的java类中? 是否可以通过更改输入字段的名称?那怎么样?
答案 0 :(得分:0)
公共类MultipleFileUploadForm {
private List<MultipartFile> files;
public List<MultipartFile> getFiles() {
return files;
}
public void setFiles(List<MultipartFile> files) {
this.files = files;
}
}
public @ResponseBody String handleFileUpload(@ModelAttribute(“multipleFileUploadForm”)MultipleFileUploadForm multipleFileUploadForm){
}
在控制器中添加@ModelAttribute