我找了很多答案,但找不到任何答案
我有 2 個學生和會議表,由學生 ID 連接
我想使用 thymeleaf 在表上顯示不同的列,以顯示學生表中的名字和姓氏,以及會議表中的日期和閱讀級別等其他欄位
學生班
package com.myprojects.takenotewebapp.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "students")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@OneToMany(mappedBy = "student", cascade = CascadeType.ALL)
private List<Meeting> meetings = new ArrayList<Meeting>();
public Student(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
會議班
package com.myprojects.takenotewebapp.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.LocalDate;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@IdClass(MeetingId.class)
@Table(name = "meetings")
public class Meeting {
@Id
private LocalDate date;
@Id
private String subject;
@Id
private String type;
// @EmbeddedId
private MeetingId meetingId;
private Character subjectLevel;
private String strength;
private String teachingPoint;
private String nextStep;
@ManyToOne(cascade = CascadeType.ALL)
private Student student;
}
控制器方法
public String viewAllStudentsPage(Model model, Student student) {
model.addAttribute("listStudents", studentService.getAllStudents());
model.addAttribute("listMeetings", meetingService.getAllMeetings());
return "students";
}
這是目前錯誤的 thymeleaf 代碼,并且為同一個表中的會議欄位回圈了兩次
<th:block th:each="student : ${listStudents}">
<tr th:each="student : ${listStudents}">
<td th:text="${student.firstName}"></td>
<td th:text="${student.lastName}"></td>
<th:block th:each="meeting : ${listMeetings}">
<td th:text="${meeting.subjectLevel}"></td>
<td th:text="${meeting.type}"></td>
</th:block>
<td>
<a th:href="@{/showUpdateForm/{id}(id=${student.id})}" class="btn btn-primary">Update</a>
<a th:href="@{/deleteStudent/{id}(id=${student.id})}" class="btn btn-danger">Delete</a>
</td>
</tr>
</th:block>
uj5u.com熱心網友回復:
- 在每個類中創建 setter 和 getter:
<table>
<tr th:each="post : ${postList}">
<td th:if="${post.isPublished()}">
<h1 th:text="${post.getTitle()}"></h1>
<p th:text="${post.getExcerpt()}"></p>
<p th:text=" 'Author : ' ${post.getAuthor()}"></p>
<p th:text="'Published At : ' ${post.getPublishedAt()}"></p>
<div class="tags">
<p>Tags :</p>
<p id="tags" th:each="tag :${post.getTags()}"
th:text="${tag.getName()}"></p>
<br>
</div> <a th:href="@{/posts/{id}(id=${post.getId()})}">read more</a>
</td>
</tr>
</table>
這是 thymeleaf 中嵌套回圈的示例,它將幫助您標記是 post 類中的串列。
uj5u.com熱心網友回復:
我通過遍歷學生然后遍歷 student.meetings 找到了我需要的方法
'<th:block th:each="student : ${listStudents}">
<tr th:each="meeting, iterStat : ${student.meetings}" th:if="${iterStat.last}">
<td>
<a th:text="${student.firstName ' ' student.lastName}"
th:href="@{/notebook/student/{id} (id=${student.id})}"></a>
</td>
<td th:text="${meeting.subjectLevel}"></td>
<td th:text="${meeting.date}" th:if="${meeting.subject=='reading'}"></td>
<td th:unless="${meeting.subject=='reading'}"></td>
<td th:text="${meeting.date}" th:if="${meeting.subject=='writing'}"></td>
<td th:unless="${meeting.subject=='writing'}"></td>
<td>
<div >
<a th:href="@{/showUpdateForm/{id}(id=${student.id})}"
><span
>edit_square</span></a>
<a th:href="@{/deleteStudent/{id}(id=${student.id})}"
><span
>delete</span></a>
</div>
</td>
</tr>
</th:block>'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/513444.html
標籤:爪哇春天jpa百里香叶
