列表中每个对象的java格式
我不熟悉Thymeleaf,尝试解决以下问题:
class Person() {
int id;
String name;
// getter & setter;
}
控制器类的代码段:
@GetMapping(value = {"..."})
public ModelAndView getXXX(HttpServletRequest request)
{
ModelAndView mv = new ModelAndView("xxx");
...
List<Person> persons = ... // Let's say a list of Persons {1: "Peter", 2: Anna}
mv.addObject("persons", persons);
...
return mv;
}
现在,在模板xxx中。html我尝试为每个人创建一个表单(而不是为所有人创建一个表单)。我目前的做法是:
<form th:each="p, stat : ${persons}"
th:object="${persons[stat.index]}"
th:action="..." method="POST" >
<input th:field="*{name}" type="text">
</form>
毫不奇怪:这不起作用。如果删除输入元素,则不会发生异常。通过输入元素,我得到以下消息(由:java.lang.IllegalStateException引起):
Neither BindingResult nor plain target object for bean name 'persons[stat' available as request attribute
有没有办法只向模型中添加对象列表,并且仍然能够为列表中的每个对象创建表单,并将共同响应的对象绑定到每个表单
谢谢
# 1 楼答案
你的控制器似乎有点不对劲
看这里https://www.thymeleaf.org/doc/articles/springmvcaccessdata.html
所以
只需将想要的对象(或列表)传递到模型对象中
然后你应该能够迭代它
编辑:我不知道怎么说英语