如何在Spring MVC中使用#mvn.url的Long类型路径变量?

时间:2017-09-16 13:13:06

标签: spring-mvc thymeleaf

所以我尝试使用以下签名构建一个控制器方法的URL:

@GetMapping(value = "/edit/{id}")
public String editPlace(@PathVariable Long id, Model model) {
    Place place = placeRepository.getOne(id);
    model.addAttribute("place", place);
    return "admin/place/addPlace";
}

我最终得到了这样的标记

<a th:href="${#mvc.url('PC#editPlace').arg(0,__${place.id}__l).build()}">
    <i class="fa fa-pencil-square-o"></i>
</a>

现在,这是一种正确的方法吗?请注意,__${place.id}__l(以L结尾)不是拼写错误,因为我指定的方式是解析值为LONG类型而没有它,我得到了异常

java.lang.IllegalArgumentException: Source to convert from must be an instance of [@org.springframework.web.bind.annotation.PathVariable java.lang.Long]; instead it was a [java.lang.Integer]

这种方法感觉很难看。这是应该采用的方法,还是我错误地使用我的工具?

0 个答案:

没有答案