0
我有一個頁面向Thymeleaf/Spring Boot項目中的用戶顯示可見列表。列表有一個owner_id
,而非擁有者的姓名,所以他們的名稱,而不是ID填充列表,我做一個單獨的數據庫調用來檢索所有業主的ID和名稱,像這樣:無法使用長密鑰在Thymeleaf中獲取HashMap值
@Controller
public class ThymeleafController {
private final ListController listController = new ListController();
private final UserController userController = new UserController();
private final ItemController itemController = new ItemController();
@RequestMapping("/user/{user_id}")
public String user_page(@PathVariable("user_id") long user_id, Model model) {
// model.addtoAttribute("name", "World");
UserMetaData user = userController.getUserMetaData(user_id);
ArrayList<User> users = (ArrayList)userController.allUsers();
HashMap<Long, String> userMap = new HashMap<Long, String>();
for (int i = 0; i < users.size(); i++) {
userMap.put(users.get(i).getId(), users.get(i).getUserName());
}
model.addAttribute("user", user);
model.addAttribute("userMap", userMap);
return "user";
}
}
而對於填充表所有者名稱,而不是擁有者的ID,下面的代碼在模板中使用:
<table class="table table-striped">
...
<tbody>
<tr th:each="publicList: ${user.public_lists}">
...
<td th:text="${userMap[__${publicList.owner}__]}">Default Owner</td>
...
</tr>
</tbody>
</table>
然而,在加載模板時,我得到了以下異常。
Caused by: org.springframework.expression.spel.SpelParseException: EL1035E: The value '5760744339537920' cannot be parsed as an int
我不知道這是爲什麼試圖解析它作爲一個int
時,關鍵是long
。有沒有什麼辦法讓Thymeleaf把價值解析爲long
?