Java 如何使用thymeleaf设置对象字段

Java 如何使用thymeleaf设置对象字段,java,spring,spring-mvc,thymeleaf,Java,Spring,Spring Mvc,Thymeleaf,我的学生班级有“对象”列表 public class Student { private List<Objects> list; ... } public class Objects { private long id; private String context; ... } 公立班学生{ 私人名单; ... } 公共类对象{ 私人长id; 私有字符串上下文; ... } @GetMapping(“注册”) 公共字符串showS

我的学生班级有“对象”列表



public class Student {
    private List<Objects> list;
    ...
}

public class Objects {
    private long id;
    private String context;
    ...
}

公立班学生{
私人名单;
...
}
公共类对象{
私人长id;
私有字符串上下文;
...
}
@GetMapping(“注册”)
公共字符串showSignUpForm(模型){
List objectsList=新建ArrayList();
添加(新对象(1,“数学”);
添加(新对象(2,“物理”);
添加(新对象(3,“化学”);
添加(新对象(4,“Geom”);
addAttribute(“对象”,objectsList);
model.addAttribute(“学生”,new student());
返回“添加学生”;
}
@后映射(“添加”)
公共字符串addStudent(Student-Student、BindingResult-result、Model-Model){
if(result.hasErrors()){
返回“添加学生”;
}
返回“重定向:列表”;
}

因此,我想将选定对象添加到student.list,但出现以下错误:

无法将类型为“java.lang.String[]”的属性值转换为属性“List”所需的类型“java.util.List”;嵌套异常为java.lang.IllegalStateException:无法将“java.lang.String”类型的值转换为属性“list[0]”的必需类型“example.Objects”:找不到匹配的编辑器或转换策略


如何正确操作?

首先,如果你想使用列表,你必须按索引操作。所以,如果你想绑定一个列表,你必须像下面这样做

  @GetMapping("signup")
    public String showSignUpForm(Model model) {
        List<Objects> objectsList = new ArrayList<>();
        objectsList.add(new Objects(1, "Math"));
        objectsList.add(new Objects(2, "Phys"));
        objectsList.add(new Objects(3, "Chem"));
        objectsList.add(new Objects(4, "Geom"));

        List<Objects> emptyList = new ArrayList<>();
        Student student = new Student();
        student.addList(emptyList);
        model.addAttribute("objects", objectsList);
        model.addAttribute("student", student);
        return "add-student";
    }
@GetMapping(“注册”)
公共字符串showSignUpForm(模型){
List objectsList=新建ArrayList();
添加(新对象(1,“数学”);
添加(新对象(2,“物理”);
添加(新对象(3,“化学”);
添加(新对象(4,“Geom”);
List emptyList=new ArrayList();
学生=新生();
student.addList(清空列表);
addAttribute(“对象”,objectsList);
model.addAttribute(“学生”,学生);
返回“添加学生”;
}

首先,如果你想使用列表,你必须按索引进行操作。所以,如果你想绑定一个列表,你必须像下面这样做

  @GetMapping("signup")
    public String showSignUpForm(Model model) {
        List<Objects> objectsList = new ArrayList<>();
        objectsList.add(new Objects(1, "Math"));
        objectsList.add(new Objects(2, "Phys"));
        objectsList.add(new Objects(3, "Chem"));
        objectsList.add(new Objects(4, "Geom"));

        List<Objects> emptyList = new ArrayList<>();
        Student student = new Student();
        student.addList(emptyList);
        model.addAttribute("objects", objectsList);
        model.addAttribute("student", student);
        return "add-student";
    }
@GetMapping(“注册”)
公共字符串showSignUpForm(模型){
List objectsList=新建ArrayList();
添加(新对象(1,“数学”);
添加(新对象(2,“物理”);
添加(新对象(3,“化学”);
添加(新对象(4,“Geom”);
List emptyList=new ArrayList();
学生=新生();
student.addList(清空列表);
addAttribute(“对象”,objectsList);
model.addAttribute(“学生”,学生);
返回“添加学生”;
}

  @GetMapping("signup")
    public String showSignUpForm(Model model) {
        List<Objects> objectsList = new ArrayList<>();
        objectsList.add(new Objects(1, "Math"));
        objectsList.add(new Objects(2, "Phys"));
        objectsList.add(new Objects(3, "Chem"));
        objectsList.add(new Objects(4, "Geom"));

        List<Objects> emptyList = new ArrayList<>();
        Student student = new Student();
        student.addList(emptyList);
        model.addAttribute("objects", objectsList);
        model.addAttribute("student", student);
        return "add-student";
    }