Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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
指定一个列表<;T>;使用thymeleaf在javascript中创建一个变量_Javascript_Java_Spring Boot_Thymeleaf - Fatal编程技术网

指定一个列表<;T>;使用thymeleaf在javascript中创建一个变量

指定一个列表<;T>;使用thymeleaf在javascript中创建一个变量,javascript,java,spring-boot,thymeleaf,Javascript,Java,Spring Boot,Thymeleaf,我正在尝试获取javascript变量中的对象列表,并将其添加到控制器中的模型中。作为一个测试,我传递了一个字符串列表,它工作得很好,但它不适用于对象列表。有人能帮我吗?我一直在寻找解决办法,但什么也找不到 这是控制器 @GetMapping(value= "/view_dates") public String viewDates(Model model){ List<Division> list =divisionService.getActiveDates();

我正在尝试获取javascript变量中的对象列表,并将其添加到控制器中的模型中。作为一个测试,我传递了一个字符串列表,它工作得很好,但它不适用于对象列表。有人能帮我吗?我一直在寻找解决办法,但什么也找不到

这是控制器

@GetMapping(value= "/view_dates")
public String viewDates(Model model){
    List<Division> list =divisionService.getActiveDates();
    model.addAttribute("dates", list);
    return  "course_view_dates";
}

我建议您转换为JSON列表变量,并在javascript处理程序中管理JSON对象数组

例如,使用:

//类字段。。。
private Gson Gson=new GsonBuilder().create();
@GetMapping(value=“/view\u dates”)
公共字符串viewDates(模型){
List=divisionService.getActiveDates();
model.addAttribute(“dates”,GSON.toJson(list));
返回“课程\查看\日期”;
}
您的javscript处理程序应该可以正常工作而不做任何更改


编辑:也许您需要解析日期JSON。解析(日期)

我建议您转换为JSON列表变量,并在javascript处理程序中管理JSON对象数组

例如,使用:

//类字段。。。
private Gson Gson=new GsonBuilder().create();
@GetMapping(value=“/view\u dates”)
公共字符串viewDates(模型){
List=divisionService.getActiveDates();
model.addAttribute(“dates”,GSON.toJson(list));
返回“课程\查看\日期”;
}
您的javscript处理程序应该可以正常工作而不做任何更改


编辑:也许你需要解析日期JSON。解析(日期)

什么东西不起作用,对象为空?你有getter和setters方法吗?我刚刚添加了更多信息,包括getter和setters方法。什么方法不起作用,对象为NULL?你有getter和setters方法吗?我刚刚添加了更多信息,包括getter和setters方法谢谢,我要试试这个option@Nils如果你找到我的答案,请投赞成票。谢谢,谢谢,我要试试这个option@Nils如果你找到我的答案,请投赞成票。谢谢
   <script th:inline = "javascript">
        /*<![CDATA[*/
            var examDates = /*[[${dates}]]*/ null;
            for (i=0; i< examDates.length; i++){
                alert(examDates[i].name);
            }
        /*]]>*/
    </script>
@Entity
@Table(name="division")
public class Division implements Serializable{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id", unique = true, nullable = false)  
  private Integer id;
  @OneToMany(mappedBy = "division")
  private List<Kind> kinds;
  @JsonIgnore
  @OneToMany(mappedBy = "division", cascade = CascadeType.ALL)
  private List<Sample> samples;
  @ManyToMany(mappedBy = "divisions", cascade = CascadeType.ALL)
  private List<Candidate> candidates;
  @Column(name = "name", nullable = false)
  private String name;
  @Column(name = "description", nullable = true)
  private String description;
  @Column(name = "course_days", nullable = true)
  private Integer courseDays;
  @Temporal(TemporalType.DATE)
  @DateTimeFormat(pattern= "dd/MM/yyy")
  @Column(name = "exam_date", nullable = true)
  private Date examDate;
  @Column(name = "active", nullable = true)
  private Boolean active;

  public Division() {
    this.name = "";
    this.description = "";
    this.courseDays = 0;
    this.examDate = null;
    this.active = false;
  }

public Division(String name, String description, Integer courseDays, Date examDate, Boolean dateActive){
    this.name = name;
    this.description = description;
    this.courseDays = courseDays;
    this.examDate = examDate;
    this.active = dateActive;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public Integer getCourseDays() {
    return courseDays;
}

public void setCourseDays(Integer courseDays) {
    this.courseDays = courseDays;
}

public List<Sample> getSamples() {
    return this.samples;
}

public void setSamples(List<Sample> samples) {
    this.samples = samples;
}

public Date getExamDate() {
    return examDate;
}

public void setExamDate(Date ExamDate) {
    this.examDate = ExamDate;
}

public Boolean getActive() {
    return active;
}

public void setActive(Boolean active) {
    this.active = active;
}

public List<Kind> getKinds() {
    return this.kinds;
}

public void setKinds(List<Kind> varieties) {
    this.kinds = varieties;
}

public List<Candidate> getCandidates() {
    return this.candidates;
}

public void setCandidates(List<Candidate> candidates) {
    this.candidates = candidates;
} 
Hibernate: select candidates0_.division_id as division2_1_0_,             candidates0_.candidate_id as candidat1_1_0_, candidate1_.id as id1_0_1_, candidate1_.name as name2_0_1_ from ostscourses.candidate_division candidates0_ inner join ostscourses.candidate candidate1_ on candidates0_.candidate_id=candidate1_.id where candidates0_.division_id=?
Hibernate: select divisions0_.candidate_id as candidat1_1_0_, divisions0_.division_id as division2_1_0_, division1_.id as id1_2_1_, division1_.active as active2_2_1_, division1_.course_days as course_d3_2_1_, division1_.description as descript4_2_1_, division1_.exam_date as exam_dat5_2_1_, division1_.name as name6_2_1_ from ostscourses.candidate_division divisions0_ inner join ostscourses.division division1_ on divisions0_.division_id=division1_.id where divisions0_.candidate_id=? order by division1_.name asc
2017-06-07 10:55:19.994 ERROR 5576 --- [pr-8080-exec-17] o.s.boot.web.support.ErrorPageFilter     : Forwarding to error page from request [/course/view_dates/] due to exception [null]

java.lang.StackOverflowError: null
at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:562) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:135) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at org.hibernate.collection.internal.PersistentBag.iterator(PersistentBag.java:277) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at org.thymeleaf.util.JavaScriptUtils.printCollection(JavaScriptUtils.java:316) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
//class fields...
private Gson GSON = new GsonBuilder().create();

@GetMapping(value= "/view_dates")
public String viewDates(Model model){
    List<Division> list =divisionService.getActiveDates();
    model.addAttribute("dates", GSON.toJson(list));
    return  "course_view_dates";
}