首页 > 解决方案 > 百里香,春天:坚持创建单个项目视图

问题描述

我已成功实现添加访问并显示所有访问的列表,但现在我坚持为单次访问创建视图。

我的 findById 函数有效:

logger.info("Visit id 2 -> {}", repository.findById(2));

Visit id 2 -> DentistVisitDTO[id='0', dentistName='Mait Kuusevaik', visitTime='2018-10-12T12:15']

当我点击一个列表项时,它成功地使用 ID 重定向到一个 URL(即“/results/1”等等。有没有办法可以使用 URL 中的 ID 并以某种方式使用 findById 在页面上呈现项目()?

我是春天和百里香的新手。

public DentistVisitDTO findById(long id) {
        return jdbcTemplate.queryForObject("SELECT * FROM DENTIST_VISIT where id=?", new Object[] { id },
                new BeanPropertyRowMapper<DentistVisitDTO>(DentistVisitDTO.class));
    }

标签: javaspringspring-bootthymeleaf

解决方案


您可以使用 SpringMVC/SpringWeb 的@RequestMapping注解从 URL 中获取 id 属性:

import org.springframework.web.bind.annotation.RequestMapping;

@RequestMapping(value="/results/{id}", method=RequestMethod.GET)
public String detail(@PathVariable(value="id") String id, Model model) {
    DentistVisitDTO dentistVisit = repository.findById(id);
    System.out.println("GET /results [" + id + "]");
    model.addAttribute("dentistVisit", dentistVisit);
    return "details";
}

推荐阅读