0
나는 thymeleaf를 배우려고 노력하는 작은 프로젝트에서 일하고 있습니다. 나는 ID, 외래 키 및 기타 물건으로서의 할당 id, 포함하는 과제 및 외래 키로서의 ID 및 프로젝트 ID와 포함하는 프로젝트 및 ID와 프로젝트 이름을 포함하는 3 개의 테이블 시간표를 가지고있다.Thymeleaf 다른 테이블의 값을 기반으로 한 테이블의 열을 표시하는 방법
html로 시간표를 표시 할 필요가 있지만 할당 ID 열 대신 프로젝트 이름을 표시하고 싶습니다.
필수 열을 호출하는 서비스 클래스에는 select가 이미 있지만 시간표에서 대신 열을 읽을 수 있도록 thymeleaf에 알릴 수는 있습니다. 여기
내 코드HTML입니다
<table class="table table-bordered">
<thead>
<tr>
<th>id</th>
<th>assignment</th>
<th>date</th>
<th>number of hours</th>
</tr>
</thead>
<tbody>
<tr th:each = "timetable: ${timetables}">
<td th:text="${timetable.timetableId}">45</td>
<td th:text="${timetable.assignmentId}">vasi</td>
<td th:text="${timetable.date}">1 ian</td>
<td th:text="${timetable.hoursWorked}">3000</td>
</tr>
</tbody>
</table>
서비스 클래스
@Autowired
JdbcTemplate template;
public List<Timetable> findAll(String loginname) {
String sql = " SELECT timetables.timetableId, timetables.assignmentId, timetables.date, timetables.hoursWorked, users.username, projects.projectName FROM timetables INNER join assignments on assignments.assignmentId = timetables.assignmentId INNER JOIN users on users.userId = assignments.userId " +
"INNER JOIN projects on assignments.projectId = projects.projectId where username= ?";
RowMapper<Timetable> rm = new RowMapper<Timetable>() {
@Override
public Timetable mapRow(ResultSet resultSet, int i) throws SQLException {
Timetable timetable = new Timetable(resultSet.getInt("timetableId"),
resultSet.getInt("assignmentId"),
resultSet.getDate("date"),
resultSet.getInt("hoursWorked"));
return timetable;
}
};
return template.query(sql, rm, loginname);
}
컨트롤러
@Autowired
TimetableService service;
@Autowired
AssignmentsService serv;
@RequestMapping(value = {"/Timetable"}, method = RequestMethod.GET)
public String index(Model md){
org.springframework.security.core.Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String loginname = auth.getName();
md.addAttribute("timetables", service.findAll(loginname));
return "Timetable";
}
작품 완벽하게 프로젝트 이름을 추가하면
그리고 이미와 인 mapRow에서이없는 경우 HTML 페이지에서 시간표 클래스의 프로젝트 이름을 추가
다음 . 고맙습니다. 위의 참조 외에도 프로젝트 클래스 인 getter와 setter에 대한 필드 클래스가 필요했으며 assignmentId 대신에 문자열 프로젝트를 사용하는 다른 생성자 – Adi
@Adi Glad가 작동했습니다! –