gpt4 book ai didi

java - spring mvc中获取form的多个同名输入

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:36 24 4
gpt4 key购买 nike

我的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 类(@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 + "]";
}
}

该命令类有一个不是原始类型的属性。这是食谱步骤:

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类中?是否可以通过更改输入字段的名称来实现?那么,如何呢?

最佳答案

public class 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){

}

在 Controller 中添加@ModelAttribute

关于java - spring mvc中获取form的多个同名输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45831992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com