以下是一个示例解决方案,演示如何将表单备用bean列表绑定到表单列表。
public class BackupBean {
private String name;
private String email;
// getter和setter方法
}
@Controller
public class FormController {
@ModelAttribute("backupBeans")
public List getBackupBeans() {
List backupBeans = new ArrayList<>();
// 添加备用bean到列表中
backupBeans.add(new BackupBean());
backupBeans.add(new BackupBean());
backupBeans.add(new BackupBean());
return backupBeans;
}
@GetMapping("/form")
public String showForm(Model model) {
model.addAttribute("formBean", new FormBean());
return "form";
}
@PostMapping("/form")
public String submitForm(@ModelAttribute("formBean") FormBean formBean, BindingResult result,
Model model, @ModelAttribute("backupBeans") List backupBeans) {
// 处理表单提交
if (result.hasErrors()) {
return "form";
}
// 打印表单数据
System.out.println("Form Data: " + formBean.getName() + ", " + formBean.getEmail());
// 打印备用bean列表数据
for (BackupBean backupBean : backupBeans) {
System.out.println("Backup Bean Data: " + backupBean.getName() + ", " + backupBean.getEmail());
}
return "redirect:/success";
}
}
在这个示例中,我们在控制器中定义了一个名为getBackupBeans()
的方法,它返回一个包含备用bean的列表,并将其添加到模型中。在提交表单时,备用bean列表将与表单数据一起传递给控制器方法。在视图中,使用Thymeleaf模板引擎的th:each
指令循环遍历备用bean列表,并将每个备用bean的数据绑定到相应的表单字段上。
请注意,这只是一个示例解决方案,具体实现可能因框架和需求而异。