Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring表单/控制器中令人愤怒的空列表_Java_Spring_Spring Mvc_Thymeleaf - Fatal编程技术网

Java Spring表单/控制器中令人愤怒的空列表

Java Spring表单/控制器中令人愤怒的空列表,java,spring,spring-mvc,thymeleaf,Java,Spring,Spring Mvc,Thymeleaf,我试图从表单输入创建一个对象列表。这些对象是相同的,但它们的值可能不同,它本质上是一个菜单 我仍然在处理Spring/Thymeleaf,它给感觉简单的任务增加了一定程度的复杂性 我有一个菜单类,一个简单的POJO,然后有一个定义为bean本身中的数据成员的列表: private ArrayList<GuestMenuOptions> guestMenus; 然后填充下拉列表的值和文本 如果我可以保存此映射的状态并将其传递回控制器,那也可以,但我不知道为什么会创建there

我试图从表单输入创建一个对象列表。这些对象是相同的,但它们的值可能不同,它本质上是一个菜单

我仍然在处理Spring/Thymeleaf,它给感觉简单的任务增加了一定程度的复杂性

我有一个菜单类,一个简单的POJO,然后有一个定义为bean本身中的数据成员的列表:

    private ArrayList<GuestMenuOptions> guestMenus;
然后填充下拉列表的值和文本

如果我可以保存此映射的状态并将其传递回控制器,那也可以,但我不知道为什么会创建there包装列表。

请重新访问。它应该尽可能简单

class Animal {
  int id;
  String name;
}
然后在模板中:

<select th:field="*{animalId}">
  <option th:each="animal : ${animals}" 
          th:value="${animal.id}" 
          th:text="${animal.name}">Wireframe</option>
</select>

线框

我认为你的代码到处都是,你把菜单选择和菜单项类型混为一谈。

我认为这是一个比我试图实现的简单得多的例子。我对这个问题进行了编辑,试图让它更清楚。你介意看一眼吗?
@RequestMapping(value = "/sendRsvp", method = RequestMethod.POST)
public String sendRsvp(@ModelAttribute("guestContactBean") GuestContactBean guestContactBean,
                               @ModelAttribute("guestMenus") ArrayList<GuestMenuOptions>menus,
                               BindingResult result) throws MessagingException {
        smtpMailSender.send(guestContactBean);
        return "thanksMessage";
    }
 private String numberOfAdults;
private String eventAttending;

private ArrayList<GuestMenuOptions> guestMenus;

public ArrayList<GuestMenuOptions> getGuestMenus() {
    return guestMenus;
}
 starter.put("salmon", "Smoked Salmon");
 starter.put("pate", "Chicken Liver Pate");
class Animal {
  int id;
  String name;
}
<select th:field="*{animalId}">
  <option th:each="animal : ${animals}" 
          th:value="${animal.id}" 
          th:text="${animal.name}">Wireframe</option>
</select>