所以我尝试使用以下签名构建一个控制器方法的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]
这种方法感觉很难看。这是应该采用的方法,还是我错误地使用我的工具?