当前位置: 首页 > 知识库问答 >
问题:

无法用长键获取Thymeleaf中的HashMap值

欧阳勇
2023-03-14
@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";
    }
}
<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

我不知道为什么要在键为long时将其解析为int。有什么方法可以让Thymeleaf将值解析为吗?

共有1个答案

施同
2023-03-14

看起来有两种方法可以让它发挥作用:

<td th:text="${userMap.get(publicList.owner)}">Default Owner</td>

<td th:text=${userMap[__${publicList.owner + 'L'}__]}">Default Owner</td>

我会用第一个。我想,在表单的情况下,你必须使用第二个。

 类似资料:
  • 我有一个如下格式的文本文件 我有一个类对象Hmp,它有两个字符串变量来存储问题(q1, q2, q3,...)和答案(a1, a2, a3,...)。我试图做的是保持模块id作为键,我想用值填充哈希图作为对象的数组列表(对象Hmp)。反过来,我将键存储在字符串的数组列表中。 在下面的代码段中, *l_ext_keys*是存储键的字符串数组列表,*l_extract*是HashMap 问题 Hash

  • 我有一个HashMap(字符串,对象)。键是多个唯一ID的组合。我有一个输入,一个字符串是键的一部分(1个唯一ID)。我需要使用键的这一部分在HashMap中获取值,而无需在HashMap中迭代数千个值。 我们可以使用HashMap.get()中的任何正则表达式实现它吗? 我的钥匙是xxx。yyy年。zzz,其中xxx的组合。zzz在整个地图上都是独一无二的。我有xxx和zzz作为输入。此外,我还

  • 下面是HashMap中包含的值 获取第一个键(即活动键)的Java代码 我们如何收集第一个键“值”(即33),我想把“键”和“值”都存储在单独的变量中。

  • 我在*.html的顶部有这个复选框。我想在“表单”中使用“ischecked”输入的值,比如将1/0(true/false)设置为隐藏输入:

  • 问题内容: 我正在用Java写一个简单的编辑文本。当用户打开文件时,将在中打开文件。我执行以下操作来保存打开的文件: 将从何处接收值,例如:。 我有一堂课: 现在,在此类中,我需要获取存储在中的值。我怎样才能做到这一点? 问题答案: 要从地图获取所有值: 要从地图中获取所有条目,请执行以下操作: Java 8更新: 处理所有值: 要处理所有条目:

  • 初学者问题:我有一个hashmap,它将整数数组存储为值。每个值的键是一个由两个整数(坐标)组成的对象。 我的问题是:如何根据对象中的两个坐标(我的“键”)从hashmap检索值? 我的协和类(在Eclipse的一点帮助下): 构建Hashmap: 如果我想访问坐标12,13上的数组,如何检索它?是否需要迭代(我希望不是,我想添加100000个坐标,当然要快速访问)。 我希望这能在某种程度上符合