Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AthleteService {
- private ObjectMapper mapper = new ObjectMapper();
- private File jsonFile = new File("jsondatabase/result.json");
- private List<Athlete> resultList = new ArrayList<>();
- @ModelAttribute("results")
- public List<Athlete> findResultByEventId(Integer id) {
- try {
- JsonNode root = mapper.readTree(jsonFile);
- JsonNode results = root.get("event_" + id);
- for (JsonNode resultNode : results.get("results")) {
- Athlete athlete = new Athlete(resultNode.get("rank").asInt(), resultNode.get("country").asText(),
- resultNode.get("athlete").asText(), resultNode.get("result").asInt(),
- resultNode.get("points").asInt());
- resultList.add(athlete);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return resultList;
- }
- @Controller
- public class PageController {
- @Autowired
- private AthleteService athleteService;
- @RequestMapping(value = "/result/{id}", method = RequestMethod.GET)
- public String resultPage(@PathVariable("id") Integer id, Model model){
- model.addAttribute("results", athleteService.findResultByEventId(id));
- return "result";
- }
- }
- <body>
- <div th:if="${not #lists.isEmpty(results)}">
- <h2 th:text="${event}"> </h2>
- <table class="table-striped">
- <thead>
- <tr style="background-color: lightgrey">
- <th>Rank</th>
- <th>Country</th>
- <th>Athlete</th>
- <th>Time</th>
- <th>Points</th>
- </tr>
- </thead>
- <tbody>
- <tr th:each="result: ${results}">
- <td th:value="${result.rank}">Rank</td>
- <td th:text="${result.country}">Country</td>
- <td th:text="${result.athlete}">Athlete</td>
- <td th:value="${result.time}">Time</td>
- <td th:value="${result.points}">Points</td>
- </tr>
- </tbody>
- </table>
- </div>
- </body>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement